要寫一個存儲過程,如果臨時表 test 不存在 ,新建臨時表,如果存在不新建
alter procedure test
as
if object_id('tempdb..#test') is null
begin
print '不存在'
create table #test (
number int not null primary key,
message varchar(50) not null
)
end
else
print '存在'
exec test
select * from #test
上面的SQL語句,調用存儲過程之后查詢臨時表會報錯
不存在
消息 2714,級別 16,狀態 6,過程 test,第 6 行
數據庫中已存在名為 '##test' 的對象。
后來將 #test 改為 ##test 便可以了
猜想可能是在存儲過程中創建的 #test 只能在存儲過程中寫查詢可以查詢到 ##表示全局臨時表,在存儲過程外也可以查詢到