簡單總結一下sqlserver中表變數和臨時表的用法和區別
阿新 • • 發佈:2019-02-05
首先先說一下表變數和臨時表的區別
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
今天先到這 明天繼續!