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

Tự động tạo bảng tạm thời dựa trên tập kết quả từ SP

Câu trả lời ngắn gọn:không, bạn không thể làm điều đó.

Bạn phải khai báo trước bảng tạm thời của mình với số cột chính xác sẽ được trả về từ chương trình đã lưu trữ.

Cách giải quyết là sử dụng các bảng liên tục. Ví dụ, bạn có thể có một bảng cố định trong cơ sở dữ liệu của mình được gọi là someSPResults. Bất cứ khi nào someSP được thay đổi để có số lượng cột đầu ra khác nhau, hãy thay đổi định dạng của someSPResults như một phần của quá trình triển khai.

Sau đó, bạn có thể làm điều này:

insert into dbo.someSPresults
exec someSP

Hoặc bên trong someSP, bạn có thể chèn kết quả trực tiếp vào bảng someSPresults như một phần thực thi bình thường. Bạn chỉ cần đảm bảo xác định chính xác bản ghi nào trong bảng someSPresults đến từ mỗi lần thực thi someSP, bởi vì proc được lưu trữ đó có thể được kích hoạt nhiều lần đồng thời, do đó kết xuất nhiều dữ liệu vào một số kết quả.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Loại bỏ các giá trị trùng lặp chỉ dựa trên một cột của bảng

  2. Truy xuất hàng cuối cùng được chèn bằng Uniqueidentifier mà nó không phải là IDENTITY

  3. Chuyển đổi số nguyên thành danh sách các ngày trong tuần

  4. Cách lấy các giá trị của cột trong SQL được phân tách bằng dấu phẩy

  5. Làm thế nào để hiển thị nhiều giá trị hàng trong dấu phẩy được phân tách trong một hàng trong SQL Server 2005?