相信大家都知道怎樣使用數(shù)據(jù)操作語(yǔ)言(DML)對(duì)SQL Server表的數(shù)據(jù)進(jìn)行插入、刪除和更新等處理。有時(shí)候,我們需要用INSERT語(yǔ)句進(jìn)行插入的數(shù)據(jù)實(shí)在是多得讓人頭疼,有很多傳統(tǒng)但繁瑣的方法可以用來插入大批量數(shù)據(jù),不過SQL Server 2008提供了一種能夠簡(jiǎn)化數(shù)據(jù)插入過程的新方法。本文將為大家簡(jiǎn)單介紹這些用來插入數(shù)據(jù)的方法之間的差異,其中包括SQL Server 2008提供的新方法——行值構(gòu)造器(Row Value Constructor)。
我們向表插入數(shù)據(jù)的傳統(tǒng)方法有三個(gè),介紹如下:
方法一
假設(shè)我們有一個(gè)名為MyTestDB的數(shù)據(jù)庫(kù),其中有一個(gè)名為MyTest1的表,數(shù)據(jù)庫(kù)和表的創(chuàng)建過程如下:
|
| insert into MyTest1 (id ,fname ,lname , salary) values (1 , 'John' , 'Smith' , 150000.00) insert into MyTest1 (id ,fname ,lname , salary) values (2 , 'Hillary' , 'Swank' , 250000.00) insert into MyTest1 (id ,fname ,lname , salary) values (3 , 'Elisa' , 'Smith' , 120000.00) insert into MyTest1 (id ,fname ,lname , salary) values (4 , 'Liz' , 'Carleno' , 151000.00) insert into MyTest1 (id ,fname ,lname , salary) values (5 , 'Tony' , 'Mcnamara' , 150300.00) |
執(zhí)行結(jié)果如下:
| (1 row(s) affected) (1 row(s) affected) (1 row(s) affected) (1 row(s) affected) (1 row(s) affected) |
方法二
假設(shè)我們?cè)谏鲜龅腗yTestDB數(shù)據(jù)庫(kù)中有表MyTest2,如下:
|
下面我們?cè)儆昧硗庖环N傳統(tǒng)的插入方法同樣添加5行數(shù)據(jù),也就是使用帶SELECT從句的INSERT SQL語(yǔ)句,腳本如下:
| insert into MyTest2 select 1 , 'John' , 'Smith' , 150000.00 insert into MyTest2 select 2 , 'Hillary' , 'Swank' , 250000.00 insert into MyTest2 select 3 , 'Elisa' , 'Smith' , 120000.00 insert into MyTest2 select 4 , 'Liz' , 'Carleno' , 151000.00 insert into MyTest2 select 5 , 'Tony' , 'Mcnamara' , 150300.00 |
執(zhí)行結(jié)果如下:
| (1 row(s) affected) (1 row(s) affected) (1 row(s) affected) (1 row(s) affected) (1 row(s) affected) |
方法三
同樣的,我們?cè)偌僭O(shè)上述的MyTestDB數(shù)據(jù)庫(kù)中有表MyTest3,如下:
|
下面我們用第三種傳統(tǒng)的插入方法同樣添加5行數(shù)據(jù),這里使用的是帶SELECT從句和UNION從句的INSERT SQL語(yǔ)句,腳本如下:
| insert into MyTest3 select 1 , 'John' , 'Smith' , 150000.00 union select 2 , 'Hillary' , 'Swank' , 250000.00 union select 3 , 'Elisa' , 'Smith' , 120000.00 union select 4 , 'Liz' , 'Carleno' , 151000.00 union select 5 , 'Tony' , 'Mcnamara' , 150300.00 |
執(zhí)行結(jié)果如下:
| (5 row(s) affected) |
方法四
最后一種方法,需要插入數(shù)據(jù)的對(duì)象是MyTestDB數(shù)據(jù)庫(kù)中的表MyTest4,如下:
|
現(xiàn)在我們要用到SQL Server 2008中提供的新方法——行值構(gòu)造器的插入SQL語(yǔ)句為上述表插入5行數(shù)據(jù),這種方法可以在一個(gè)INSERT語(yǔ)句中一次性插入多行數(shù)據(jù),腳本如下:
| insert into MyTest4 (id ,fname ,lname , salary) values
(2 , 'Hillary' , 'Swank' , 250000.00), (3 , 'Elisa' , 'Smith' , 120000.00), (4 , 'Liz' , 'Carleno' , 151000.00), (5 , 'Tony' , 'Mcnamara' , 150300.00) |
執(zhí)行結(jié)果如下:
| (5 row(s) affected) |
新聞熱點(diǎn)
疑難解答
圖片精選