Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Erstellen Sie eine temporäre Tabelle mit dynamischem SQL in SQL Server 2008

Das Problem ist, dass der Gültigkeitsbereich Ihrer temporären Tabelle nur innerhalb der exec()-Anweisung existiert. Sie können Ihre temporäre Tabelle in eine "globale" temporäre Tabelle umwandeln, indem Sie 2 Hash-Zeichen -> ##tempTable verwenden. Ich frage mich jedoch, warum Sie eine Variable @dynamicallyBuiltWhereClause verwenden, um Ihre SQL-Anweisung zu generieren.

Ich habe in der Vergangenheit das getan, was Sie tun, hatte aber besseren Erfolg beim Generieren von SQL aus der Anwendung (unter Verwendung von C#, um mein SQL zu generieren).

Außerdem möchten Sie vielleicht einen Blick auf Tabellenvariablen werfen. Ich habe einige seltsame Fälle gesehen, in denen temporäre Tabellen verwendet wurden, bei denen eine Anwendung eine Verbindung wiederverwendet und die temporäre Tabelle der letzten Abfrage immer noch vorhanden ist.