簡單總結一下sqlserver中表變量和臨時表的用法和區別

首先先說一下表變量和臨時表的區別
1.臨時表:涉及到物理IO讀寫 所有操作都有日誌 支持索引和數據統計而且臨時表有所機制

2.表變量:使用內存(讀取速度快)沒有操作日誌

總結一下使用場合
遇到以下幾種情況的時候選用臨時表
① 存儲的數據較大
② 存儲的數據比較重要
③ 需要支持索引和數據統計 (數據統計這塊本人暫時理解爲需要用到聚合)
其他時候就選用表變量

臨時表和表變量具體語法

1.臨時表

--創建一個臨時表
create table #TempTable(
    Name varchar(20),
    Num varchar(20)
    ....
)

--向臨時表中添加一條記錄
insert into #TempTable (name,num) values ('大雄','001')

可以看出不管是創建臨時表還是向臨時表中添加一條數據,其語法都和普通表的用法一樣

2.表變量

--定義表變量
declare @table table(
    Name varchar(20),
    Num varchar(20)
    ....
)

--給表變量賦值(可以理解爲給表中的字段一一賦值)
insert into @table (Name) select Name from #TempTable

今天先到這 明天繼續!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章