語法
INSERT INTO 表名稱 VALUES (值1, 值2,....)我們也可以指定所要插入數據的列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
插入新的行
"Persons" 表:
LastName | FirstName | Address | City |
Carter | Thomas | Changan Street | Beijing |
SQL 語句:
INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
結果1
LastName | FirstName | Address | City |
Carter | Thomas | Changan Street | Beijing |
Gates | Bill | Xuanwumen 10 | Beijing |
在指定的列中插入數據
"Persons" 表:
LastName | FirstName | Address | City |
Carter | Thomas | Changan Street | Beijing |
Gates | Bill | Xuanwumen 10 | Beijing |
結果2
INSERT INTO Persons(LastName,Address) VALUES ('Wilson', 'Champs-Elysees')
LastName | FirstName | Address | City |
Carter | Thomas | Changan Street | Beijing |
Gates | Bill | Xuanwumen 10 | Beijing |
Wilson | Champs-Elysees |
做法
大容量載入數據的最佳做法
使用 INSERT INTO SELECT 進行大容量載入數據並按最小方式記錄日誌
您可以使用 INSERT INTO <target_table> SELECT <columns> FROM < source_table> 高效地將大量行從一個表(例如臨時表)傳輸到按最小方式記錄日誌的其他表中。按最小方式記錄日誌可以提高語句的性能,減少在事務期間此操作填充可用事務日誌空間的可能性。
針對此語句的按最小方式記錄日誌具有以下要求:
•資料庫的恢復模式設定為簡單或大容量日誌模式。
•目標表是空或非空堆。
•複製操作未使用目標表。
•為目標表指定了 TABLOCK 提示。
此外,可能還可以以最小方式記錄通過 MERGE 語句中的插入操作插入堆中的行。