当前位置:  开发笔记 > 数据库 > 正文

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

如何解决《SQL中的"@"符号有什么作用?》经验,为你挑选了2个好方法。

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

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的方法吗?



1> Kibbee..:

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


@Mark:你能解释一下这是一个有效的SQL注入尝试吗?据我所知,如果发送到SqlServer会出错.
不存在SQL注入的原因是`@CustID`被替换为字符串.当该数据库收到其中一个变量时,它知道不会为变量内部的任何内容转义该变量.

2> Steven A. Lo..:

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

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有