臨時表和游標的使用小總結

2021-08-22 05:14:56 字數 1287 閱讀 9902

最近使用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

print

'exists

'end

else

begin

print

'notexists

'end

1。在動態sql語句中建立的區域性臨時表,在語句執行完畢後就自動刪除了

所以下面的語句是得不到結果集的

exec('select * into #tems from jobs')

select * from #tems

2。在儲存過程中用到的臨時表在過程執行完畢後會自動刪除

但是推薦顯式刪除,這樣有利於系統

ii。游標

游標也有區域性和全域性兩種型別

區域性游標:只在宣告階段使用

全域性游標:可以在宣告它們的過程,觸發器外部使用

判斷存在性:

cursor_status('

global',

'游標名稱')

=-3andcursor_status('

local',

'游標名稱')

=-3begin

print

'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...