O que faz o símbolo " @ " em SQL?

Estava a ver as perguntas e reparei nisto:
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
Estava a pensar o que o " @ " faz em frente ao custID? É apenas uma forma de referenciar o custID da tabela a ser selecionada?

 59
sql
Author: Colin Brock, 2008-12-12

8 answers

O @CustID significa que é um parâmetro que você irá fornecer um valor para mais tarde no seu código. Esta é a melhor forma de proteger contra a injecção de SQL. Crie sua consulta usando parâmetros, em vez de concatenar strings e variáveis. O motor de banco de dados coloca o valor do parâmetro onde está o item de substituição, e não há nenhuma chance para a injeção de SQL.

 46
Author: Kibbee, 2008-12-12 04:29:20

@ é usado como prefixo que denota os nomes dos parâmetros dos procedimentos e funções armazenados, assim como os nomes das variáveis

 27
Author: Steven A. Lowe, 2008-12-12 03:04:14

Por isso, poderia definir qual o valor do @custID está dentro desta pesquisa seleta ou antes de fazer a pesquisa?

Algo assim?
SET @custID = '1';
 2
Author: Levi, 2016-06-29 01:44:31

É um parâmetro que precisas de definir. para prevenir a injecção de SQL, deve passar todas as variáveis como parâmetros.

 1
Author: bendewey, 2008-12-12 03:05:23

Você pode ser usado para a sintaxe do MySQL: o Microsoft SQL @ é o mesmo que o Mysql's ?

 1
Author: ine, 2008-12-12 03:07:35
O que você está falando é a forma como uma consulta parametrizada é escrita. "@"significa apenas que é um parâmetro. Você pode adicionar o valor para esse parâmetro durante o processo de execução
eg:
sqlcommand cmd = new sqlcommand(query,connection);
cmd.parameters.add("@custid","1");
sqldatareader dr = cmd.executequery();
 1
Author: Samiksha, 2008-12-12 05:24:25
publish data where stoloc = 'AB143' 
|
[select prtnum where stoloc = @stoloc]
É assim que o @ funciona.
 0
Author: marc, 2012-07-30 20:04:44

@ seguido por um número são os parâmetros na ordem em que estão listados em uma função.

 0
Author: ZeroPhase, 2017-07-26 06:28:37