我试着找到这个在线答案,但找不到任何明确的解释:存储过程中的“@”符号?
存储过程中的@是否提供某种特殊用途/特别表示某种东西?我们在使用它的时候有点困惑,因为它们的用法似乎有所不同。
例如在下面的例子中@用于:
DELIMITER $
DROP PROCEDURE IF EXISTS emp_count_2;
CREATE PROCEDURE emp_count_2(OUT param1 INT)
BEGIN
SELECT COUNT(*) INTO param1 FROM Employee;
END
$
DELIMITER ;
/* To invoke this procedure use the mysql command statement
CALL emp_count_2(@empCount);
SELECT @empCount;
*/
再次,它在这个例子中,@服务于某种特殊用途的,或者我们可以删除@,只是使用普通的变量名?
**编辑:我使用MySQL
访问reff:[**在MySQL **中的会话变量](http://stackoverflow.com/questions/1009954/mysql-variable-vs-variable-whats-the-difference)。 – 2013-03-10 14:52:49
你使用了哪个数据库? – Oded 2013-03-10 14:53:00
@GrijeshChauhan是@仅用于访问存储过程之外的var值吗?因为我们没有在存储过程中使用@所以是@只是sql脚本语法的一部分? – rrazd 2013-03-10 14:55:57