存儲過程中新建臨時表的


要寫一個存儲過程,如果臨時表 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 只能在存儲過程中寫查詢可以查詢到 ##表示全局臨時表,在存儲過程外也可以查詢到

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM