sql >> Database >  >> RDS >> Sqlserver

exec is mislukt omdat de naam geen geldige id is?

Probeer dit in plaats daarvan op het einde:

exec (@query)

Als u de haakjes niet hebt, gaat SQL Server ervan uit dat de waarde van de variabele een opgeslagen procedurenaam is.

OF

EXECUTE sp_executesql @query

En het zou niet moeten komen door FULL JOIN.
Maar ik hoop dat je hiervoor al de tijdelijke tabellen hebt gemaakt:#TrafficFinal, #TrafficFinal2, #TrafficFinal3.

Houd er rekening mee dat er prestatieoverwegingen zijn tussen het gebruik van EXEC en sp_executesql. Omdat sp_executesql geforceerde instructiecaching gebruikt als een sp.
Meer details hier .

Aan de andere kant, is er een reden waarom u dynamische sql voor dit geval gebruikt, wanneer u de query kunt gebruiken zoals deze is, aangezien u geen querymanipulaties uitvoert en het uitvoert zoals het is?



  1. Kan externe sleutel niet neerzetten in MySQL

  2. Lees char,double,int patroon van string in sql

  3. Mysql - waar clausule langzamer is dan volledige scan

  4. Wat is een betere strategie voor het opslaan van loggegevens in een database?