摘要: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秒鐘結束。
簡直是太神奇了傑克~~~
自從使用了這招,哇ㄟ人生是彩色ㄟ~~