Ieri sera stavo scrivendo un semplice programma di T-SQL o meno cosìCome posso usare if dopo un CTE (SQL Server 2005)
DECLARE @ROLEID AS INT
SELECT @ROLEID = [ROLE ID] FROM TBLROLE
;WITH CTE
AS
(
SELECT * FROM SOMETABLE
)
IF (@ROLEID = 1)
BEGIN
//SOMECODE
END
ELSE IF(@ROLEID = 2)
BEGIN
//SOMECODE
END
ELSE
BEGIN
//SOMECODE
END
ho scoperto dopo la compilazione che sta gettando errore qualcosa come " Dichiarazione errata vicino a "
" Cosa c'è che non va?
Tuttavia, l'ho fatto usando un altro modo. Ma volevo sapere perché non ha funzionato!
Cosa significa // SOMECODE fare in ogni caso? Se, ad esempio, le istruzioni UPDATE sono tutte rivolte alla stessa tabella, è possibile omettere il codice procedurale utilizzando la variabile @ROLEID e scrivere invece un singolo UPDATE utilizzando un approccio basato su set. – onedaywhen
In realtà sto selezionando i record come select * da tblname. nessuna operazione dml –