|
TABLE有取代臨時表的意思,但目前它的功能還不夠強大,
但一般情況使用TABLE變量優于使用臨時表,因為TABLE實
際上是內存表,臨時表會在DISK上創建,DISK I/O卻是最慢的
declare @t table(id int,name varchar(20))
insert into @t values(1,'abc')
insert into @t values(2,'def')
select * from @t
create proc up_1
as
begin
declare @t table(id int,name varchar(20))
insert into @t values(1,'abc')
insert into @t values(2,'def')
select * from @t
end
go
create proc up_2
as
begin
create table #t(id int,name varchar(20))
insert into #t values(1,'abc')
insert into #t values(2,'def')
select * from #t
end
exec up_1
go
exec up_2
如果小量記錄是效率是一樣的,
但如何大量記錄臨時表就差了.
但昨時表要比TABLE變量的功能
強一些.
INSERT INTO #t EXEC up_1 OK
INSERT iNTO @t EXEC up_1 ERROR |
|