sql的臨時表使用小結(jié)
1、創(chuàng)建方法:
方法一:
create table TempTableName
或
select [字段1,字段2,...,] into TempTableName from table
方法二:
create table tempdb.MyTempTable(Tid int)
說明:
(1)、臨時表其實是放在數(shù)據(jù)庫tempdb里的一個用戶表;
(2)、TempTableName必須帶“#”,“#"可以是一個或者兩個,以#(局部)或##(全局)開頭的表,這種表在會話期間存在,會話結(jié)束則自動刪除;
(3)、如果創(chuàng)建時不以#或##開頭,而用tempdb.TempTable來命名它,則該表可在數(shù)據(jù)庫重啟前一直存在。
2、手動刪除
drop table TempTableName
說明:
DROP TABLE 語句顯式除去臨時表,否則臨時表將在退出其作用域時由系統(tǒng)自動除去:
(1)、當(dāng)存儲過程完成時,將自動除去在存儲過程中創(chuàng)建的本地臨時表。由創(chuàng)建表的存儲過程執(zhí)行的所有嵌套存儲過程都可以引用此表。但調(diào)用創(chuàng)建此表的存儲過程的進(jìn)程無法引用此表;
(2)、所有其它本地臨時表在當(dāng)前會話結(jié)束時自動除去;
(3)、全局臨時表在創(chuàng)建此表的會話結(jié)束且其它任務(wù)停止對其引用時自動除去。任務(wù)與表之間的關(guān)聯(lián)只在單個Transact-SQL語句的生存周期內(nèi)保持。換言之,當(dāng)創(chuàng)建全局臨時表的會話結(jié)束時,最后一條引用此表的Transact-SQL語句完成后,將自動除去此表。
3、示例代碼
(1)創(chuàng)建
use testdb
--創(chuàng)建局部臨時表
create table #tmpStudent(Tid int,Name varchar(50),Age int)
insert into #tmpStudent values('xiaowang',25)
select * from #tmpStudent
--創(chuàng)建局部臨時表 另一種寫法
select * into #tmpStudent from student
select * from #tmpStudent
第二種創(chuàng)建方法:
create table tempdb.MyTempTable(Tid int) --有對應(yīng)權(quán)限才可以這么寫
(2)刪除
drop table #tmpStudent
關(guān)于sql中臨時表的生命周期
1.局部臨時表(#開頭)只對當(dāng)前連接有效,當(dāng)前連接斷開時自動刪除。
2.全局臨時表(##開頭)對其它連接也有效,在當(dāng)前連接和其他訪問過它的連接都斷開時自動刪除。
3.不管局部臨時表還是全局臨時表,只要連接有訪問權(quán)限,都可以用drop table #Tmp(或者drop table ##Tmp)來顯式刪除
相關(guān)文章
Sql數(shù)據(jù)庫中去掉字段的所有空格小結(jié)篇
這篇文章主要介紹了Sql數(shù)據(jù)庫中去掉字段的所有空格小結(jié)篇,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05
解決SQL Server的“此數(shù)據(jù)庫沒有有效所有者”問題
解決SQL Server的“此數(shù)據(jù)庫沒有有效所有者”問題,需要的朋友可以參考下。2011-12-12
SQL Server清除日志文件ERRORLOG和刪除tempdb.mdf
數(shù)據(jù)庫再使用一段時間后,日志文件會增大,特別是在磁盤容量不足的情況下,更是需要縮減,以下為縮減方法:如果可以停止 SQL Server 服務(wù),那么可以采取更直接的方式來縮減 ERRORLOG 和 tempdb.mdf 文件的大小,2025-03-03
SQL查詢服務(wù)器下所有數(shù)據(jù)庫及數(shù)據(jù)庫的全部表
這篇文章主要介紹了SQL查詢服務(wù)器下所有數(shù)據(jù)庫,數(shù)據(jù)庫的全部表,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05
SQL Server實現(xiàn)自動循環(huán)歸檔分區(qū)數(shù)據(jù)腳本詳解
最近在工作中遇到了關(guān)于sql server的一個問題,通過查找相關(guān)的資料終于解決了,所以下面這篇文章主要給大家介紹了關(guān)于SQL Server如何實現(xiàn)自動循環(huán)歸檔分區(qū)數(shù)據(jù)腳本的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-09-09
SQL Server簡單模式下誤刪除堆表記錄恢復(fù)方法(繞過頁眉校驗)
這篇主旨是揭示堆表的刪除記錄找回的原理,我所考慮的方面并不適用于每個人的每種情況,望大家見諒2013-01-01
sqlserver中求字符串中漢字的個數(shù)的sql語句
sqlserver中求字符串中漢字的個數(shù)的sql語句,需要的朋友可以參考下2012-05-05
Mybatis非配置原因,導(dǎo)致SqlSession was not registered for synchroniza
本文主要介紹Mybatis非配置原因出錯,這里對這個出現(xiàn)的問題做了詳細(xì)介紹,及解決辦法,有興趣的小伙伴可以參考下2016-09-09

