SQL Server 2008的批量插入功能


一次插入多行是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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM