日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

微軟SQL Server 2008之行值構(gòu)造器_Mssql數(shù)據(jù)庫教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:Sql語句密碼驗(yàn)證的安全漏洞
Sql語句作為國際標(biāo)準(zhǔn)的數(shù)據(jù)庫查詢語句,在各種編程環(huán)境中得到了廣泛的應(yīng)用。作為一個成熟、穩(wěn)定的系統(tǒng),用戶登陸和密碼驗(yàn)證是必不可少的。 Sql語句作為國際標(biāo)準(zhǔn)的數(shù)據(jù)庫查詢語句,在

相信大家都知道怎樣使用數(shù)據(jù)操作語言(DML)對SQL Server表的數(shù)據(jù)進(jìn)行插入、刪除和更新等處理。有時候,我們需要用INSERT語句進(jìn)行插入的數(shù)據(jù)實(shí)在是多得讓人頭疼,有很多傳統(tǒng)但繁瑣的方法可以用來插入大批量數(shù)據(jù),不過SQL Server 2008提供了一種能夠簡化數(shù)據(jù)插入過程的新方法。本文將為大家簡單介紹這些用來插入數(shù)據(jù)的方法之間的差異,其中包括SQL Server 2008提供的新方法——行值構(gòu)造器(Row Value Constructor)。

我們向表插入數(shù)據(jù)的傳統(tǒng)方法有三個,介紹如下:

方法一

假設(shè)我們有一個名為MyTestDB的數(shù)據(jù)庫,其中有一個名為MyTest1的表,數(shù)據(jù)庫和表的創(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插入語句向上表添加5行數(shù)據(jù),這里需要用到帶VALUE從句的INSERT SQL語句來插入數(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è)我們在上述的MyTestDB數(shù)據(jù)庫中有表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

下面我們再用另外一種傳統(tǒng)的插入方法同樣添加5行數(shù)據(jù),也就是使用帶SELECT從句的INSERT SQL語句,腳本如下:

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)

方法三

同樣的,我們再假設(shè)上述的MyTestDB數(shù)據(jù)庫中有表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語句,腳本如下:

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ù)的對象是MyTestDB數(shù)據(jù)庫中的表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語句為上述表插入5行數(shù)據(jù),這種方法可以在一個INSERT語句中一次性插入多行數(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)

分享:用sp_lock診斷SQL Sever的性能問題
在IT 專家中有一種普遍的誤解,就是認(rèn)為“鎖定是不好的東西”,你必須盡一切可能保證數(shù)據(jù)庫鎖定不會使得進(jìn)程無法正常運(yùn)行。為了能夠確保一個一致的數(shù)據(jù)庫環(huán)境,在對資源進(jìn)行修改時,

來源:模板無憂//所屬分類:Mssql數(shù)據(jù)庫教程/更新時間:2008-08-22
相關(guān)Mssql數(shù)據(jù)庫教程