一次插入多行是SQL Server 2008的新功能。在插入的語句中添加逗號分隔即可:
INSERT INTO person
(id, name, age)
VALUES
(1, 'Kelvin', 22),
(2, 'ini_always', 23);
在數據比較多時,執行批量插入能提升性能。但是在SQL Server 2008之前的版本中並不提供此功能。
但如果批量插入的數據來自其它表甚至其它數據源,上述方法就不行了,這時就要用INSERT INTO ... SELECT語句,示例如下:
/* 定義一個常量並賦值為7 */
DECLARE @profileID int
SELECT @profileID=7
/* 定義一個表變量tab_event並插入三條數據 */
DECLARE @tab_event TABLE (
eventType int NOT NULL
)
INSERT @tab_event
VALUES (1), (2), (3)
/* 定義待插入的表變量tab_test */
DECLARE @tab_test TABLE (
profileID int NOT NULL,
eventType int NOT NULL
)
/* 插入三條數據到tab_test,這三條數據部分來自於常量profileID,部分來自於對表變量tab_event查詢的結果 */
INSERT @tab_test
(profileID, eventType)
SELECT @profileID, eventType FROM @tab_event