Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

exec nie powiodło się, ponieważ nazwa nie jest prawidłowym identyfikatorem?

Spróbuj zamiast tego na końcu:

exec (@query)

Jeśli nie masz nawiasów, SQL Server przyjmuje, że wartość zmiennej jest nazwą procedury składowanej.

LUB

EXECUTE sp_executesql @query

I nie powinno tak być z powodu FULL JOIN.
Ale mam nadzieję, że już wcześniej utworzyłeś tabele tymczasowe:#TrafficFinal, #TrafficFinal2, #TrafficFinal3.

Należy pamiętać, że istnieją kwestie dotyczące wydajności między używaniem EXEC i sp_executesql. Ponieważ sp_executesql używa wymuszonego buforowania instrukcji jak sp.
Więcej szczegółów tutaj .

Z drugiej strony, czy istnieje powód, dla którego używasz dynamicznego sql w tym przypadku, kiedy możesz użyć zapytania w takim stanie, w jakim jest, biorąc pod uwagę, że nie wykonujesz żadnych manipulacji zapytaniami i nie wykonujesz go tak, jak jest?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ms-access:jak wykonać prawidłowe zapytanie?

  2. Warunki wyścigu kolejki procesów SQL Server

  3. Zapytanie SQL Server wybierz 1 z każdej podgrupy

  4. Upuść tabelę, a następnie nie można odtworzyć tabeli o tej samej nazwie

  5. Czy kolumna TimeStamp jest unikalna?