Tôi gặp sự cố này khi cố gắng nhập kết quả của Proc đã lưu trữ vào bảng tạm thời và Proc đã lưu trữ đó được chèn vào bảng tạm thời như một phần hoạt động của chính nó. Vấn đề là SQL Server không cho phép cùng một quá trình ghi vào hai bảng tạm thời khác nhau cùng một lúc.
Câu trả lời OPENROWSET được chấp nhận hoạt động tốt, nhưng tôi cần tránh sử dụng bất kỳ SQL động hoặc nhà cung cấp OLE bên ngoài nào trong quy trình của mình, vì vậy tôi đã đi một con đường khác.
Một cách giải quyết dễ dàng mà tôi tìm thấy là thay đổi bảng tạm thời trong thủ tục được lưu trữ của tôi thành một biến bảng. Nó hoạt động giống hệt như đã làm với bảng tạm, nhưng không còn xung đột với chèn bảng tạm khác của tôi nữa.
Chỉ để bắt đầu nhận xét, tôi biết rằng một vài người trong số các bạn sắp viết, cảnh báo tôi rằng Biến Bảng là kẻ giết hiệu suất ... Tất cả những gì tôi có thể nói với bạn là vào năm 2020, nó sẽ trả cổ tức đừng sợ Bảng Biến. Nếu đây là năm 2008 và Cơ sở dữ liệu của tôi được lưu trữ trên máy chủ có RAM 16GB và chạy trên ổ cứng 5400RPM, tôi có thể đồng ý với bạn. Nhưng đó là năm 2020 và tôi có một dãy SSD làm bộ nhớ chính và hàng trăm hợp đồng RAM. Tôi có thể tải toàn bộ cơ sở dữ liệu của công ty mình vào một biến bảng và vẫn còn nhiều RAM để dự phòng.
Bảng biến đã trở lại trên menu!