Sie sollten Hash (#) -Tabellen verwenden, nach denen Sie tatsächlich suchen, weil der Wert der Variablen nur bis zur Ausführung erhalten bleibt. z.B. -
declare @TEMP table (ID int, Name varchar(max))
insert into @temp SELECT ID, Name FROM Table
Wenn über zwei und unter zwei Anweisungen separat ausgeführt werden.
SELECT * FROM @TEMP
WHERE @TEMP.ID = 1
Der Fehler wird angezeigt, weil der Wert der Variablen verloren geht, wenn Sie den Stapel der Abfrage zum zweiten Mal ausführen. Es gibt definitiv o/p, wenn Sie einen ganzen Block von Code ausführen.
Die Hash-Tabelle ist die bestmögliche Option zum Speichern und Abrufen des temporären Werts. Es dauert lange, bis die Elternsitzung am Leben ist.
'SELECT * FROM @TEMP T WHERE T.ID = 1' – GriGrim