標籤:style blog http io ar color os 使用 sp
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語句