1 INSERT語法
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
}
}
}
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 Portal GO INSERT INTO [dbo].[Product] ([ProductName], [UnitPrice], [CreateDate]) SELECT [ProductName], [UnitPrice], [CreateDate] FROM [Northwind].[dbo].[Product] GO
示例:聲明table類型的變量,向變量中一次插入多條記錄
USE Portal GO DECLARE @tbl TABLE ( ProductName VARCHAR(50) NULL, CreateDate DATETIME NULL ) INSERT INTO @tbl SELECT [ProductName], [CreateDate] FROM [dbo].[Product] SELECT * FROM @tbl GO