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

Sudah ada objek bernama '#columntable' di database

Tabel sementara tidak dihapus secara otomatis di akhir kueri, hanya ketika koneksi saat ini ke DB terputus atau Anda menghapusnya secara eksplisit dengan DROP TABLE #columntable

Baik menguji keberadaan tabel di awal kueri atau selalu menghapusnya di akhir (sebaiknya keduanya)

EDIT:Seperti yang dikatakan Matrin dalam komentarnya, ini sebenarnya adalah kesalahan penguraian. Anda mendapatkan kesalahan yang sama jika Anda hanya mengurai SQL seperti saat Anda menjalankannya.

Untuk mengujinya, saya membagi kueri Anda dan mencoba:

if exists (select 1 from emp where id = 6)
  create table #columntable (newcolumns varchar(100))
GO
if not exists (select 1 from emp where id = 6)
  create table #columntable (oldcolumns varchar(100))
GO

Pengurai senang dengan itu. Menariknya jika Anda mengubah menggunakan tabel non-temp kueri asli mem-parsing dengan baik (saya menyadari masalah yang akan timbul, saya hanya tertarik untuk mengetahui mengapa kueri tidak dapat diurai).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara terbaik untuk beban tambahan di ssis

  2. Harus mendeklarasikan variabel skalar @ID untuk memasukkan parameter

  3. Menghubungkan ke SQL Server menggunakan otentikasi windows

  4. Konversi 'datetime2' menjadi 'waktu' di SQL Server (Contoh T-SQL)

  5. SQL Server:Menggabungkan Beberapa Baris Data menjadi Satu Baris