我正在浏览这些问题,并注意到了这一点:
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的一种方式吗?
答案
@custid表示这是一个参数,您将为以后的代码提供值。这是防止SQL注入的最佳方法。使用参数创建查询,而不是串联字符串和变量。数据库引擎将参数值放入占位符所在的位置,而SQL注入的机会为零。