Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Đã có một đối tượng có tên '#columntable' trong cơ sở dữ liệu

Bảng tạm thời không tự động bị loại bỏ khi kết thúc truy vấn, chỉ khi kết nối hiện tại với DB bị ngắt hoặc bạn xóa chúng một cách rõ ràng bằng DROP TABLE #columntable

Kiểm tra sự tồn tại của bảng khi bắt đầu truy vấn hoặc xóa nó ở cuối (tốt nhất là cả hai)

CHỈNH SỬA:Như Matrin đã nói trong nhận xét của mình, đây thực sự là một lỗi phân tích cú pháp. Bạn gặp lỗi tương tự nếu bạn chỉ phân tích cú pháp SQL như khi bạn thực thi nó.

Để kiểm tra điều đó, tôi đã chia nhỏ truy vấn của bạn và thử:

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

Trình phân tích cú pháp rất vui với điều đó. Thật thú vị nếu bạn chuyển sang sử dụng bảng không tạm thời, truy vấn ban đầu phân tích cú pháp tốt (tôi nhận ra các vấn đề sẽ tạo ra, tôi chỉ muốn tìm hiểu lý do tại sao truy vấn không phân tích cú pháp).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng câu lệnh UPDATE có điều kiện trong SQL

  2. Cách trả về một chuỗi theo thứ tự ngược bằng SQL Server - REVERSE ()

  3. Cuộn nhiều hàng trong một hàng

  4. Làm thế nào để lấy tổng của cột có cùng id trong SQL?

  5. MMC không thể tạo snap-in. SQL Server lỗi trình quản lý cấu hình