SQL中的“@”符号有什么作用?

时间:2008-12-12 03:02:55

标签: sql

我正在浏览问题并注意到这一点:

SELECT prodid, issue
FROM Sales 
WHERE custid = @custid 
AND datesold = SELECT MAX(datesold) 
             FROM Sales s 
             WHERE s.prodid = Sales.prodid
                  AND s.issue = Sales.issue
                  AND s.custid = @custid

我想知道“@”在custID面前做了什么?它只是一种从所选表中引用custID的方法吗?

7 个答案:

答案 0 :(得分:49)

@CustID表示它是一个参数,您将在以后的代码中提供一个值。这是防止SQL注入的最佳方法。使用参数创建查询,而不是连接字符串和变量。数据库引擎将参数值放入占位符所在的位置,并且SQL注入的可能性为零。

答案 1 :(得分:28)

@用作表示存储过程和函数参数名称的前缀,以及变量名称

答案 2 :(得分:2)

您需要定义的参数。为防止SQL注入,您应该将所有变量作为参数传递。

答案 3 :(得分:2)

您可能习惯使用MySQL的语法:Microsoft SQL @与MySQL的?

相同

答案 4 :(得分:1)

您所说的是参数化查询的编写方式。 '@'只表示它是一个参数。您可以在执行过程中为该参数添加值

eg:
sqlcommand cmd = new sqlcommand(query,connection);
cmd.parameters.add("@custid","1");
sqldatareader dr = cmd.executequery();

答案 5 :(得分:0)

publish data where stoloc = 'AB143' 
|
[select prtnum where stoloc = @stoloc]

这就是@的工作原理。

答案 6 :(得分:0)

@后跟一个数字是他们在函数中列出的顺序中的参数。