Что делает символ " @ " в 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 из таблицы выбирают?
8 ответов:
@CustID означает, что это параметр, который вы будете предоставлять значение позже в своем коде. Это лучший способ защиты от SQL-инъекций. Создайте запрос с помощью параметров, а не объединения строк и переменных. Компонент database engine помещает значение параметра туда, где находится заполнитель, и вероятность внедрения SQL равна нулю.
@ используется в качестве префикса, обозначающего имена хранимых процедур и параметров функций, а также имена переменных
Итак, вы бы установили, какое значение @custID находится внутри этого запроса select или перед выполнением запроса?
что-то подобное?
SET @custID = '1';
Это параметр, который вам нужно определить. чтобы предотвратить SQL-инъекцию, вы должны передать все свои переменные в качестве параметров.
то, о чем вы говорите, - это способ написания параметризованного запроса. '@' просто означает, что это параметр. Вы можете добавить значение для этого параметра в процессе выполнения
eg: sqlcommand cmd = new sqlcommand(query,connection); cmd.parameters.add("@custid","1"); sqldatareader dr = cmd.executequery();