1. 程式人生 > >SQL中的變量表和臨時表

SQL中的變量表和臨時表

臨時 set sele from var table arc () ble

1、變量表:

declare @SDT datetime,@EDT datetime --定義執行開始、結束時間
set @SDT=getdate()
--定義變量表
declare @t table
(
ID int,
Myfield nvarchar(50),
InputDT datetime
)
--插入數據到變量表
insert @t select top 10000 ID,Myfield,getdate() from 表

set @EDT=getdate()
select DATEDIFF(ms,@SDT,@EDT) AS Diffms --開始、結束時間間隔

2、臨時表

declare @SDT datetime,@EDT datetime

set @SDT=getdate()
--創建臨時表:
create table #t
(
ID int,
Myfield nvarchar(50),
InputDT datetime
)
insert #t select top 10000 ID,Myfield,getdate() from 表
select * from #t
set @EDT=getdate()
select DATEDIFF(ms,@SDT,@EDT) AS DiffNS
drop table #t

不創建臨時表直接插入

declare @SDT datetime,@EDT datetime
set @SDT=getdate()
select top 10000 ID,Myfield,getdate() into #t from 表

select * from #t
set @EDT=getdate()
select DATEDIFF(ms,@SDT,@EDT) AS DiffNS
drop table #t

總結:數據量少的時[總行數小於1000],使用變量表
數據量大時(行數>10萬),使用創建臨時表再插入。
數據量一般時(10萬>行數>1萬),使用不建立臨時表直接插入。

SQL中的變量表和臨時表