1. 程式人生 > >簡單總結一下sqlserver中表變數和臨時表的用法和區別

簡單總結一下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

今天先到這 明天繼續!