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

tạo động bảng #temp và sau đó được sử dụng để chèn dữ liệu

Điều này là do phạm vi của EXEC câu lệnh khác với phạm vi của mầm có chứa. Đó là, cuộc gọi của bạn tới EXEC đang tạo bảng tạm thời và sau đó nó sẽ tự động được bỏ làm phạm vi cho EXEC còn lại. Về cơ bản, bạn phải thực hiện toàn bộ bên trong một EXEC tuyên bố:

DECLARE @sql VARCHAR(MAX)
SET @sql = 'SELECT * INTO #temp
            FROM ' + @PKSchema + '.dbo.' + @PKTableName + ' WHERE 1<>1
            INSERT INTO #temp ...'

EXEC(@sql)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn từ một bảng trong đó tên được chuyển dưới dạng một biến

  2. Toán tử logic IN là gì trong SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 122

  3. Truyền được chỉ định không phải là lỗi hợp lệ khi sử dụng C #

  4. Cách thực thi Thủ tục được lưu trữ từ Laravel

  5. Cấu trúc lại ADO.NET - SqlTransaction so với TransactionScope