首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL INSERT 語句實戰指南:單行、多行與批量插入最佳實踐

     編輯:關於SqlServer

INSERT 基本語法

INSERT INTO table_name (col1, col2, ...)
VALUES (val1, val2, ...);
  • 列名與值順序、數量、類型必須一一對應
  • 字符串/日期用單引號 '...',數值直接寫
  • 省略列名時,需對應表定義的所有列(含身份列需用 DEFAULT 或列清單)

經典單行插入

INSERT INTO employee (first, last, age, address, city)
VALUES ('Luke', 'Duke', 45, '2130 Boars Nest', 'Hazard Co');

中文數據插入範例

INSERT INTO employee (first, last, age, address, city)
VALUES ('Zhang', 'Weiguo', 28, '北京601信箱', '北京');

批量插入高性能寫法

-- 多行 VALUES(SQL Server 2008+)
INSERT INTO employee (first, last, age)
VALUES 
('A', 'B', 20),
('C', 'D', 25),
('E', 'F', 30);

-- INSERT ... SELECT(跨表/大量數據)
INSERT INTO target_table (col1, col2)
SELECT col1, col2 FROM source_table WHERE ...;

進階技巧與避坑指南

  • 身份列:IDENTITY(1,1) 列不可顯式插入,除非 SET IDENTITY_INSERT ON
  • DEFAULT 約束:INSERT ... VALUES (DEFAULT, 'val') 使用預設值
  • 大批量:BULK INSERT / bcp / SqlBulkCopy(.NET)比多行 VALUES 快 10-100 倍
  • 錯誤處理:TRY...CATCH 捕獲主鍵衝突、檢查約束違例
  • 最小日誌:配合 TABLOCK、簡單恢復模式、無索引/觸發器,可實現最小日誌插入
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved