基本原則:能用表變量就用表變量。實在不行才使用臨時表。
如與動態語句結合、外部需要使用等,就需要臨時表。
表變量主要開銷系統的內存,而臨時表則使用tempdb。對于小數據量的中間數據存儲,可以使用表變量,而當需要臨時保存的數據量很龐大時,建議使用臨時表。具體使用表變量還是臨時表,可以根據系統的運行狀況來調整。
declare @tb table(id int,name varchar(50),age int) --創建表變量

insert @tb select 1,'nn',14
union all select 1,'nn',14

select * from @tb




create table #t(id int,name varchar(50),years int,nums int)--創建臨時表

insert #t select 1,'nn',14,15
union all select 1,'nn',14,15
insert into #t exec sp_gets --可以用于存儲過程或動態SQL結合

select * from #t
drop table #t