2010-08-13 11 views
10

Tôi có một thủ tục được lưu trữ trên SQL Server 2000. Nó chứa:
select ... into ##Temp ...
...
drop table ##Temp
Hiện đã là một đối tượng có tên là '## Temp' trong cơ sở dữ liệu

Khi tôi chạy các thủ tục lưu trữ với ADO lần thứ hai, nó lời nhắc:
Đã có một đối tượng có tên '## Temp' trong cơ sở dữ liệu.
Có ai vui lòng cho tôi biết có vấn đề gì không?

+0

bạn có thể không chỉ sử dụng biến bảng (chọn .. thành @temp) hay không. sau đó bạn không cần phải lo lắng về việc deallocating bảng, vv – RPM1984

+0

Cấu trúc bảng là năng động. Đó là lý do tại sao tôi sử dụng bảng tạm thời. – phoenies

Trả lời

18

Bạn nên viết lại proc lưu trữ của bạn để thả các bảng temp nếu nó tồn tại, sau đó bạn sẽ không bao giờ có vấn đề này

IF (SELECT object_id('TempDB..##Temp')) IS NOT NULL 
BEGIN 
    DROP TABLE ##Temp 
END 
+0

Lỗi là <Đã có một đối tượng có tên '## Temp' trong cơ sở dữ liệu.> Vì vậy, vấn đề trong