Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

exec non è riuscito perché il nome non è un identificatore valido?

Prova questo invece alla fine:

exec (@query)

Se non hai le parentesi, SQL Server presuppone che il valore della variabile sia un nome di stored procedure.

O

EXECUTE sp_executesql @query

E non dovrebbe essere a causa di FULL JOIN.
Ma spero che tu abbia già creato le tabelle temporanee:#TrafficFinal, #TrafficFinal2, #TrafficFinal3 prima di questo.

Si noti che esistono considerazioni sulle prestazioni tra l'utilizzo di EXEC e sp_executesql. Perché sp_executesql utilizza la memorizzazione nella cache delle istruzioni forzata come una sp.
Ulteriori dettagli qui .

In un'altra nota, c'è un motivo per cui stai usando sql dinamico per questo caso, quando puoi usare la query così com'è, considerando che non stai eseguendo manipolazioni di query e la stai eseguendo così com'è?