首页 > 代码库 > Sql Server系列:Insert语句
Sql Server系列:Insert语句
1. INSERT语法
[ WITH <common_table_expression> [ ,...n ] ]INSERT { [ TOP ( expression ) [ PERCENT ] ] [ INTO ] { <object> | rowset_function_limited [ WITH ( <Table_Hint_Limited> [ ...n ] ) ] } { [ ( column_list ) ] [ <OUTPUT Clause> ] { VALUES ( { DEFAULT | NULL | expression } [ ,...n ] ) [ ,...n ] | derived_table | execute_statement | <dml_table_source> | DEFAULT VALUES } }}[;]
在该结构中,INSERT为该语句的实际操作,INTO关键字无真正含义,目的是为增强这个语句的可读性。INTO关键字为可选,建议在语句中加入该关键字。在使用Entity Framework添加数据时,执行的INSERT语句是没有使用INTO关键字的。
2. 单条插入
INSERT INTO [dbo].[Product] ([ProductName], [UnitPrice], [CreateDate])VALUES (‘LINQ to SQL‘, 100, GETDATE());
3. 多条插入
SQL Server 2012支持一次插入多行记录,实现方式为在需要添加额外的用逗号分隔的插入值。
INSERT INTO [dbo].[Product] ([ProductName], [UnitPrice], [CreateDate])VALUES (‘LINQ to SQL‘, 100, GETDATE()), (‘LINQ to Object‘, 90, GETDATE());
4. INSERT INTO ... SELECT语句
在一次INSERT多条记录时,且需要插入的数据是从其他的数据源选择获取时,可以使用INERT INTO...SELECT语句。
不同的数据源包括:
◊ 数据库中的另一个表
◊ 同一台服务器上的另外一个数据库中的数据表
INERT INTO...SELECT语法:
INSERT INTO <table name>[<column list>]<SELECT statement>
示例:从另外一个数据库的数据表作为数据源一次插入多条记录
USE PortalGOINSERT INTO [dbo].[Product] ([ProductName], [UnitPrice], [CreateDate])SELECT [ProductName], [UnitPrice], [CreateDate]FROM [Northwind].[dbo].[Product]GO
示例:声明table类型的变量,向变量中一次插入多条记录
USE PortalGODECLARE @tbl TABLE( ProductName VARCHAR(50) NULL, CreateDate DATETIME NULL)INSERT INTO @tblSELECT [ProductName], [CreateDate]FROM [dbo].[Product]SELECT * FROM @tblGO
5. 参考资料:
http://msdn.microsoft.com/zh-cn/library/ms174335.aspx
Sql Server系列:Insert语句
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。