tại sao mã công việc này mà không có vấn đề:Sự khác nhau giữa Bàn Bàn Temp
drop table t1
select * into t1 from master..spt_values
drop table t1
select * into t1 from master..spt_values
Output
Msg 3701, Level 11, State 5, Line 1
Cannot drop the table 't1', because it does not exist or you do not have permission.
(2508 row(s) affected)
(2508 row(s) affected)
nhưng mã này không:
drop table #t1
select * into #t1 from master..spt_values
drop table #t1
select * into #t1 from master..spt_values
Output
Msg 2714, Level 16, State 1, Line 4
There is already an object named '#t1' in the database.
sự khác nhau giữa Bảng và Bảng tạm thời trong mã này là gì?
Câu hỏi hay. Để minh họa tốt hơn điểm của bạn [this SQLFiddle] (http://sqlfiddle.com/#!3/d41d8/5748) không hoạt động, nhưng thay thế bằng các bảng bình thường thì – RichardTheKiwi
[Giải thích cho hành vi ở đây] (http: //sqlblog.com/blogs/michael_zilberstein/archive/2008/08/28/Name-resolution-in-SQL-Server.aspx) Đối với 't1' các câu lệnh có thể được biên dịch trả chậm nhưng đây không phải là trường hợp cho' # t1 ' –
Cũng giống như một lưu ý phụ" [DROP TABLE và CREATE TABLE không nên được thực hiện trên cùng một bảng trong cùng một lô. Nếu không, một lỗi không mong muốn có thể xảy ra.] (http://msdn.microsoft.com/en-us/ thư viện/ms173790.aspx) " –