Что делает символ " @ " в 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 59
sql

8 ответов:

@CustID означает, что это параметр, который вы будете предоставлять значение позже в своем коде. Это лучший способ защиты от SQL-инъекций. Создайте запрос с помощью параметров, а не объединения строк и переменных. Компонент database engine помещает значение параметра туда, где находится заполнитель, и вероятность внедрения SQL равна нулю.

@ используется в качестве префикса, обозначающего имена хранимых процедур и параметров функций, а также имена переменных

Итак, вы бы установили, какое значение @custID находится внутри этого запроса select или перед выполнением запроса?

что-то подобное?

SET @custID = '1';

Это параметр, который вам нужно определить. чтобы предотвратить SQL-инъекцию, вы должны передать все свои переменные в качестве параметров.

вы можете использовать синтаксис MySQL: Microsoft SQL @ Это то же самое, что и MySQL ?

то, о чем вы говорите, - это способ написания параметризованного запроса. '@' просто означает, что это параметр. Вы можете добавить значение для этого параметра в процессе выполнения

eg:
sqlcommand cmd = new sqlcommand(query,connection);
cmd.parameters.add("@custid","1");
sqldatareader dr = cmd.executequery();
publish data where stoloc = 'AB143' 
|
[select prtnum where stoloc = @stoloc]

Это как @ строительство.

@ за числом следуют параметры в том порядке, в котором они перечислены в функции.