国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

微軟SQL Server 2008之行值構(gòu)造器

2024-08-31 00:46:03
字體:
供稿:網(wǎng)友

相信大家都知道怎樣使用數(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)建過程如下:

USE [master]
GO
IF EXISTS (SELECT name FROM sys.databases
WHERE name = N'MyTestDB')
DROP DATABASE [MyTestDB]
GO
Create database MyTestDB
Go
Use [MyTestDB]
Go
IF EXISTS (SELECT * FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[MyTest1]')
AND type in (N'U'))
DROP TABLE [dbo].[MyTest1]
GO
USE [MyTestDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[MyTest1](
[Id] [int] NULL,
[Fname] [varchar](100) NULL,
[Lname] [varchar](100) NULL,
[salary] [money] NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO


現(xiàn)在我們用傳統(tǒng)的ANSI插入語(yǔ)句向上表添加5行數(shù)據(jù),這里需要用到帶VALUE從句的INSERT SQL語(yǔ)句來插入數(shù)據(jù),腳本如下:

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,如下:

USE [MyTestDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MyTest2]')

AND type in (N'U'))
DROP TABLE [dbo].[MyTest2]
GO
CREATE TABLE [dbo].[MyTest2](
[Id] [int] NULL,
[Fname] [varchar](100) NULL,
[Lname] [varchar](100) NULL,
[salary] [money] NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO

下面我們?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,如下:

USE [MyTestDB]
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MyTest3]')

AND type in (N'U'))
DROP TABLE [dbo].[MyTest3]
GO
USE [MyTestDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[MyTest3](
[Id] [int] NULL,
[Fname] [varchar](100) NULL,
[Lname] [varchar](100) NULL,
[salary] [money] NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO

下面我們用第三種傳統(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,如下:

USE [MyTestDB]
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MyTest4]')

AND type in (N'U'))
DROP TABLE [dbo].[MyTest4]
GO
USE [MyTestDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[MyTest4](
[Id] [int] NULL,
[Fname] [varchar](100) NULL,
[Lname] [varchar](100) NULL,
[salary] [money] NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO

現(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


(1 , 'John' , 'Smith' , 150000.00),

(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)

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 安陆市| 潜山县| 长垣县| 姚安县| 拉孜县| 南城县| 潮安县| 资中县| 新宾| 靖边县| 临夏县| 上杭县| 绿春县| 灵宝市| 太原市| 宁海县| 马公市| 陈巴尔虎旗| 芜湖县| 永嘉县| 西安市| 余干县| 北川| 普兰县| 黔西| 疏附县| 麦盖提县| 曲水县| 泰宁县| 弋阳县| 乐业县| 六枝特区| 云浮市| 颍上县| 宣汉县| 漳州市| 桃园市| 庆安县| 安仁县| 墨竹工卡县| 鄂托克前旗|