Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

exec gagal karena namanya bukan pengidentifikasi yang valid?

Coba ini sebagai gantinya pada akhirnya:

exec (@query)

Jika Anda tidak memiliki tanda kurung, SQL Server mengasumsikan nilai variabel sebagai nama prosedur tersimpan.

ATAU

EXECUTE sp_executesql @query

Dan seharusnya bukan karena FULL JOIN.
Tapi saya harap Anda sudah membuat tabel temp:#TrafficFinal, #TrafficFinal2, #TrafficFinal3 sebelum ini.

Harap dicatat bahwa ada pertimbangan kinerja antara menggunakan EXEC dan sp_executesql. Karena sp_executesql menggunakan caching pernyataan paksa seperti sp.
Lebih detail di sini .

Pada catatan lain, apakah ada alasan mengapa Anda menggunakan sql dinamis untuk kasus ini, ketika Anda dapat menggunakan kueri apa adanya, mengingat Anda tidak melakukan manipulasi kueri dan menjalankannya seperti apa adanya?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kembalikan nilai pada tanggal maksimum untuk id tertentu dengan nol sebagai nilai maksimum di t-sql

  2. SQL Server 2008 menghasilkan skrip wizard memberi saya skrip yang menghasilkan tanda kutip tidak tertutup

  3. UNIX_TIMESTAMP di SQL Server

  4. SQL:Pilih nama kolom dinamis berdasarkan variabel

  5. Apakah Eksekusi Prosedur Tersimpan T-SQL 'atomik'?