资源描述:
《sql server 如何向表中插入数据》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、相信大家都知道怎样使用数据操作语言(DML)对SQLServer表的数据进行插入、删除和更新等处理。有时候,我们需要用INSERT语句进行插入的数据实在是多得让人头疼,有很多传统但繁琐的方法可以用来插入大批量数据,不过SQLServer2008提供了一种能够简化数据插入过程的新方法。本文将为大家简单介绍这些用来插入数据的方法之间的差异,其中包括SQLServer2008提供的新方法——行值构造器(RowValueConstructor)。我们向表插入数据的传统方法有三个,介绍如下:方法一假设我们有一个名为MyTestDB的数据库,其中有一个名为MyTest1的表,数据库和表的创建过程如下:US
2、E[master]GOIFEXISTS(SELECTnameFROMsys.databasesWHEREname=N'MyTestDB')DROPDATABASE[MyTestDB]GOCreatedatabaseMyTestDBGoUse[MyTestDB]GoIFEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N'[dbo].[MyTest1]')ANDtypein(N'U'))DROPTABLE[dbo].[MyTest1]GOUSE[MyTestDB]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIE
3、RONGOSETANSI_PADDINGONGOCREATETABLE[dbo].[MyTest1]([Id][int]NULL,[Fname][varchar](100)NULL,[Lname][varchar](100)NULL,[salary][money]NULL)ON[PRIMARY]GOSETANSI_PADDINGOFFGO现在我们用传统的ANSI插入语句向上表添加5行数据,这里需要用到带VALUE从句的INSERTSQL语句来插入数据,脚本如下:insertintoMyTest1(id,fname,lname,salary)values(1,'John','Smith',150
4、000.00)insertintoMyTest1(id,fname,lname,salary)values(2,'Hillary','Swank',250000.00)insertintoMyTest1(id,fname,lname,salary)values(3,'Elisa','Smith',120000.00)insertintoMyTest1(id,fname,lname,salary)values(4,'Liz','Carleno',151000.00)insertintoMyTest1(id,fname,lname,salary)values(5,'Tony','Mcnamara'
5、,150300.00)执行结果如下:(1row(s)affected)(1row(s)affected)(1row(s)affected)(1row(s)affected)(1row(s)affected)方法二假设我们在上述的MyTestDB数据库中有表MyTest2,如下:USE[MyTestDB]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_PADDINGONGOIFEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N'[dbo].[MyTest2]')ANDtypein(N
6、'U'))DROPTABLE[dbo].[MyTest2]GOCREATETABLE[dbo].[MyTest2]([Id][int]NULL,[Fname][varchar](100)NULL,[Lname][varchar](100)NULL,[salary][money]NULL)ON[PRIMARY]GOSETANSI_PADDINGOFFGO下面我们再用另外一种传统的插入方法同样添加5行数据,也就是使用带SELECT从句的INSERTSQL语句,脚本如下:insertintoMyTest2select1,'John','Smith',150000.00insertintoMyTest
7、2select2,'Hillary','Swank',250000.00insertintoMyTest2select3,'Elisa','Smith',120000.00insertintoMyTest2select4,'Liz','Carleno',151000.00insertintoMyTest2select5,'Tony','Mcnamara',150300.00执行结果如下:(1row