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

exec fehlgeschlagen, weil der Name kein gültiger Bezeichner ist?

Versuchen Sie stattdessen am Ende Folgendes:

exec (@query)

Wenn Sie keine Klammern haben, nimmt SQL Server an, dass der Wert der Variablen ein Name einer gespeicherten Prozedur ist.

ODER

EXECUTE sp_executesql @query

Und es sollte nicht an FULL JOIN liegen.
Aber ich hoffe, Sie haben die temporären Tabellen bereits erstellt:#TrafficFinal, #TrafficFinal2, #TrafficFinal3 davor.

Bitte beachten Sie, dass zwischen der Verwendung von EXEC und sp_executesql Leistungsüberlegungen zu berücksichtigen sind. Weil sp_executesql erzwungenes Statement-Caching wie ein sp verwendet.
Weitere Details hier .

Gibt es einen Grund, warum Sie für diesen Fall dynamisches SQL verwenden, wenn Sie die Abfrage so verwenden können, wie sie ist, wenn Sie bedenken, dass Sie keine Abfragemanipulationen vornehmen und sie so ausführen, wie sie ist?