區域性臨時表與全域性臨時表區別與示例

2022-05-06 14:36:07 字數 1707 閱讀 7131

區域性臨時表與全域性臨時表區別與示例

1、區域性臨時表(#開頭)只對當前連線有效,當前連線斷開時自動刪除。

2、全域性臨時表(##開頭)對其它連線也有效,在當前連線和其他訪問過它的連線都斷開時自動刪除。

3、不管區域性臨時表還是全域性臨時表,只要連線有訪問許可權,都可以用drop table #tmp(或者drop table ##tmp)來顯式刪除臨時表。

示例:主儲存過程 createscheduleconference.sql

if  exists (select * from sys.objects where object_id = object_id(n'[dbo].[createscheduleconference]') and type in (n'p', n'pc'))

drop procedure [dbo].[createscheduleconference]

gocreate proc dbo.createscheduleconference

(@resouceids varchar(max))as

begin

set nocount on

create table #tmptbresourceselect(resourceid int)

insert #tmptbresourceselect select * from dbo.fn_split(@resouceids,',')

exec dbo.checkphysicsresourceisvalid @resouceids

drop table #tmptbresourceselect ---使用完成後刪除臨時表

set nocount off

end子儲存過程  checkphysicsresourceisvalid.sql

if  exists (select * from sys.objects where object_id = object_id(n'[dbo].[checkphysicsresourceisvalid]') and type in (n'p', n'pc'))

drop procedure [dbo].[checkphysicsresourceisvalid]

gocreate proc dbo.checkphysicsresourceisvalid

(@resourceids varchar(max))as

begin

select * from #tmptbresourceselect

end呼叫示例

declare @resourceids varchar(max)

set @resourceids = '1,2,3'

exec [dbo].[createscheduleconference] @resourceids

結果顯示為:

resourceid12

3如果再用 select * from #tmptbresourceselect 則出現

訊息 208,級別 16,狀態 0,第 1 行

物件名  '#tmptbresourceselect' 無效。

即使在再改成 use tempdb

select * from #tmptbresourceselect執行後錯誤提示一樣

如果將#tmptbresourceselect定義成##tmptbresourceselect時,則再次執行select * from ##tmptbresourceselect可以得到正確結果

臨時表與表變數

臨時表 表變數的比較 1 臨時表 臨時表包括 以 開頭的區域性臨時表,以 開頭的全域性臨時表。a 儲存 不管是區域性臨時表,還是全域性臨時表,都會放存放在tempdb資料庫中。b 作用域 區域性臨時表 對當前連線有效,只在建立它的儲存過度 批處理 動態語句中有效,類似於c語言中區域性變數的作用域。全...

表變數與臨時表

什麼情況下使用表變數?什麼情況下使用臨時表?表變數 declare tb table id int identity 1,1 name varchar 100 insert tb select id,name from mytable where name like zhang 臨時表 select...

臨時表與中間表

外部臨時表 通過create temporary table 建立的臨時表,這種臨時表稱為外部臨時表。這種臨時表只對當前使用者可見,當前會話結束的時候,該臨時表會自動關閉。這種臨時表的命名與非臨時表可以同名 同名後非臨時表將對當前會話不可見,直到臨時表被刪除 內部臨時表 內部臨時表是一種特殊輕量級的...