最近使用db的機會比較多,現做了一些小總結:
臨時表與永久表相似,但臨時表儲存在 tempdb 中,當不再使用時會自動刪除。
臨時表有區域性和全域性兩種型別
2者比較:
區域性臨時表的名稱以符號 (#) 打頭
僅對當前的使用者連線是可見的
當使用者例項斷開連線時被自動刪除
全域性臨時表的名稱以符號 (##) 打頭
任何使用者都是可見的
當所有引用該錶的使用者斷開連線時被自動刪除
實際上區域性臨時表在tempdb中是有唯一名稱的
例如我們用sa登陸乙個查詢分析器,再用sa登陸另一查詢分析器
在2個查詢分析器我們都允許下面的語句:
use pubs go
select * into #tem from jobs
分別為2個使用者建立了2個區域性臨時表
我們可以從下面的查詢語句可以看到
select *
from [tempdb].[dbo].[sysobjects]
where xtype='u'
判斷臨時表的存在性:
object_id('
tempdb..#tem')
isnot
null
begin
'exists
'end
else
begin
'notexists
'end
1。在動態sql語句中建立的區域性臨時表,在語句執行完畢後就自動刪除了
所以下面的語句是得不到結果集的
exec('select * into #tems from jobs')
select * from #tems
2。在儲存過程中用到的臨時表在過程執行完畢後會自動刪除
但是推薦顯式刪除,這樣有利於系統
ii。游標
游標也有區域性和全域性兩種型別
區域性游標:只在宣告階段使用
全域性游標:可以在宣告它們的過程,觸發器外部使用
判斷存在性:
cursor_status('
global',
'游標名稱')
=-3andcursor_status('
local',
'游標名稱')
=-3begin
'notexists
'end
希望上面提到的知識對你有所提示
當然歡迎交流和指正
i。臨時表
臨時表和游標的使用小總結
sql server2005 transact sql 新兵器學習總結之 總結 最近使用db的機會比較多,現做了一些小總結 i。臨時表 臨時表與永久表相似,但臨時表儲存在 tempdb 中,當不再使用時會自動刪除。臨時表有區域性和全域性兩種型別 2者比較 區域性臨時表的名稱以符號 打頭 僅對當前的使...
游標的結果集放入臨時表
這個儲存過程是在sqlserver環境下的,通過游標讀取資料,得到結果放入臨時表中 注 如果知道如何將游標通過迴圈讀出,妹子也是剛剛接觸儲存過程的,還望賜教。將游標遍歷的結果集放入臨時表中,最後讀取臨時表 create procedure dbo cc asdeclare id varchar 10...
游標的結果集放入臨時表
這個儲存過程是在sqlserver環境下的,通過游標讀取資料,得到結果放入臨時表中,執行儲存過程就得到臨時表的內容。將游標遍歷的結果集放入臨時表中,最後讀取臨時表 create procedure dbo cc asdeclare id varchar 10 宣告游標 declare cc curs...