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
}
}
}
[;]
在該結(jié)構(gòu)中,INSERT為該語句的實(shí)際操作,INTO關(guān)鍵字無真正含義,目的是為增強(qiáng)這個(gè)語句的可讀性。INTO關(guān)鍵字為可選,建議在語句中加入該關(guān)鍵字。在使用Entity Framework添加數(shù)據(jù)時(shí),執(zhí)行的INSERT語句是沒有使用INTO關(guān)鍵字的。
2 單條插入
INSERT INTO [dbo].[Product]
([ProductName], [UnitPrice], [CreateDate])
VALUES
('LINQ to SQL', 100, GETDATE());
3 多條插入
SQL Server 2012支持一次插入多行記錄,實(shí)現(xiàn)方式為在需要添加額外的用逗號分隔的插入值。
INSERT INTO [dbo].[Product]
([ProductName], [UnitPrice], [CreateDate])
VALUES
('LINQ to SQL', 100, GETDATE()),
('LINQ to Object', 90, GETDATE());
4 INSERT INTO ... SELECT語句
在一次INSERT多條記錄時(shí),且需要插入的數(shù)據(jù)是從其他的數(shù)據(jù)源選擇獲取時(shí),可以使用INERT INTO...SELECT語句。
不同的數(shù)據(jù)源包括:
◊ 數(shù)據(jù)庫中的另一個(gè)表
◊ 同一臺服務(wù)器上的另外一個(gè)數(shù)據(jù)庫中的數(shù)據(jù)表
INERT INTO...SELECT語法:
INSERT INTO <table_name> [<column list>] <SELECT statement>
示例:從另外一個(gè)數(shù)據(jù)庫的數(shù)據(jù)表作為數(shù)據(jù)源一次插入多條記錄
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
5 參考資料:
http://msdn.microsoft.com/zh-cn/library/ms174335.aspx
總結(jié)
以上是生活随笔為你收集整理的Sql Server系列:Insert语句的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 取数据 展示_php mys
- 下一篇: java二叉树生成器_JAVA实现二叉树