Nel mio script ho poche istruzioni selezionate e dichiarazioni di aggiornamento, ad esempio
SELECT * from TABLE1
WHERE userID= "US001"
UPDATE TABLE2
SET value= "months"
WHERE userID="US001"
dichiarazioni che vanno così avanti, quindi in questo devo copiaree incolla userID su ogni istruzione. Voglio dichiarare una variabile e assegnare a userID di riferirla, quindi non ho bisogno di aggiungere il numero ID utente a ogni query e ho bisogno di eseguire
ho provato questo
Delcare @theID userID
SET userID ="us001"
ma non ha funzionato
Per favore mi faccia sapere.. Grazie
risposte:
2 per risposta № 1Dovrai dichiarare il tipo e assegnarlo In Sql Server, le variabili sono precedute da @
, così:
DECLARE @theID NVARCHAR(20);
SET @theID ="us001";
UPDATE TABLE2 SET value= "months" WHERE userID=@theID;
1 per risposta № 2
DECLARE @theID varchar(10);
SET @theID = "us001";
Nella tua dichiarazione stai dichiarando la tua variabile come userID
, che non è un tipo di dati valido.
1 per risposta № 3
Oltre alle risposte precedenti, in SQL Server 2008 e versioni successive è inoltre possibile dichiarare e impostare la variabile in un'unica riga.
DECLARE @UserID NVARCHAR(20) = "us001";
0 per risposta № 4
Questo è ciò che funziona per me sotto SQL2005 in una stored procedure:
DECLARE @name varchar(100)
SELECT @name = "Robin"
// and this should be do the update
SET userID = @name
// or in you query it should be
WHERE userID = @name