SQL Server - Update A table = B table 的值

摘要:SQL Server - Update A table = B table 的值

我有一個需求,是將A table 的欄位值,等於B table的欄位值,透過他們相同的 key 值,

因為呈上一個的文章,

我要更新,要20分鐘的時間,

所以,我決定幹一件事,讓資料先insert 到一個temp table

再透過update 一行指令,將A table的欄位值,等於 temp table 的欄位值。

讓整體速度加快。

 

然後我做了一個實驗。

先建立A table、B table

 

create table test_a (id int primary key IDENTITY(1,1) NOT NULL,data_id varchar(80),data varchar(80));
create table test_b (id int primary key IDENTITY(1,1) NOT NULL,data_id varchar(80),data varchar(80));
 
然後insert 多筆資料
insert into test_a (data_id,data) values('abcde','test_a');
insert into test_b (data_id,data) values('abcde','test_b');
 
再用update set from inner join where 的方式將B table的值,放入A table去。
 
update A set A.data = B.data
From test_a A
Inner Join test_b B 
On A.data_id = B.data_id;
 
實驗結果,可行~~
 
而這個實驗結果,
原本1000筆,大概是需要兩分鐘時間才會更新完畢。
而我使用這招之後,2000筆,可以再10秒鐘結束。
 
簡直是太神奇了傑克~~~
自從使用了這招,哇ㄟ人生是彩色ㄟ~~