--方法1:使用表變數
--宣告表變數
declare
@temp
table
( empid
int,
firstname
nvarchar(10
), lastname
nvarchar(20
) );
--將源表中的資料插入到表變數中
insert
into
@temp
(empid, firstname, lastname )
select empid,firstname,lastname from
hr.employees
order
byempid;
--宣告變數
declare
@empid
asint
,
@firstname
asnvarchar(10
),
@lastname
asnvarchar(20
);
while
exists(select empid from
@temp)
begin
--也可以使用top 1
setrowcount
1select
@empid
= empid, @firstname
= firstname,@lastname
= lastname from
@temp
;
update hr.employees set fullname=
@firstname+'
'+@lastname
where empid=
@empid
;
setrowcount
0delete
from
@temp
where empid=
@empid;
end--
方法2:使用臨時表
--建立臨時表
ifobject_id('
tempdb.dbo.#tempemployees
','u
') is
notnull
drop
table
dbo.#tempemployees;
goselect
empid,firstname,lastname
into
dbo.#tempemployees
from
hr.employees
order
byempid;
--select * from dbo.#tempemployees;
--宣告變數
declare
@empid
asint
,
@firstname
asnvarchar(10
),
@lastname
asnvarchar(20
);
while
exists(select empid from
dbo.#tempemployees)
begin
--也可以使用top 1
setrowcount
1select
@empid
= empid, @firstname
= firstname,@lastname
= lastname from
dbo.#tempemployees;
update hr.employees set fullname=
@firstname+'
'+@lastname
where empid=
@empid
;
setrowcount
0delete
from dbo.#tempemployees where empid=
@empid;
end
臨時表與表變數
臨時表 表變數的比較 1 臨時表 臨時表包括 以 開頭的區域性臨時表,以 開頭的全域性臨時表。a 儲存 不管是區域性臨時表,還是全域性臨時表,都會放存放在tempdb資料庫中。b 作用域 區域性臨時表 對當前連線有效,只在建立它的儲存過度 批處理 動態語句中有效,類似於c語言中區域性變數的作用域。全...
表變數與臨時表
什麼情況下使用表變數?什麼情況下使用臨時表?表變數 declare tb table id int identity 1,1 name varchar 100 insert tb select id,name from mytable where name like zhang 臨時表 select...
mysql表變數臨時表 表變數和臨時表詳解
首先讓我們來看看什麼是表變數和臨時表。sql server 表變數 1.初識表變數 表變數在sql server 2000中首次被引用。表變數的定義和建立乙個表大致相同,只不過是使用declare variable而不是create table,表變數定義包括列定義,列名,資料型別和約束 可用的約束...