sql >> Databasteknik >  >> RDS >> Sqlserver

exec misslyckades eftersom namnet inte är en giltig identifierare?

Prova detta istället till slut:

exec (@query)

Om du inte har parenteserna antar SQL Server att variabelns värde är ett lagrat procedurnamn.

ELLER

EXECUTE sp_executesql @query

Och det borde inte bero på FULL JOIN.
Men jag hoppas att du redan har skapat temptabellerna:#TrafficFinal, #TrafficFinal2, #TrafficFinal3 innan detta.

Observera att det finns prestandaöverväganden mellan att använda EXEC och sp_executesql. Eftersom sp_executesql använder forcerad satscache som en sp.
Mer information här .

Å andra sidan, finns det en anledning till varför du använder dynamisk sql för det här fallet, när du kan använda frågan som den är, med tanke på att du inte gör några frågemanipulationer och kör den som den är?



  1. Är det möjligt att ändra datatypen Date i SQL Server

  2. Hur pratar Access med ODBC-datakällor? Del 1

  3. Postgresql Docker-rollen finns inte

  4. Förstå cast från bytea till oid