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

批量生成 SQL INSERT 語句工具:Excel/文本數據快速轉換為數據庫腳本實戰

     編輯:關於SqlServer

業務場景

天氣預報模塊需將 300+ 城市代碼映射表導入數據庫。源數據為省份-城市-代碼三列文本,需批量生成 `INSERT` 腳本。

通用生成方法

方法一:Excel 公式拼接 (零代碼)

-- 假設 A=省份, B=城市, C=代碼
="INSERT INTO CityCode (Province, City, Code) VALUES ('" & A2 & "', '" & B2 & "', '" & C2 & "');"

下拉填充 → 複製結果 → SSMS 執行。

方法二:SQL Server 導入導出向導

  1. 右鍵數據庫 → 任務 → 導入數據
  2. 2. 數據源:Excel / 平面文件 3. 目標:SQL Server 表 4. 字段映射 → 運行

方法三:Python/PowerShell 腳本化 (可複用)

# Python pandas 示例
import pandas as pd
df = pd.read_excel('city_codes.xlsx')
sql = "INSERT INTO CityCode (Province, City, Code) VALUES "
vals = ", ".join([f"('{row.Province}', '{row.City}', '{row.Code}')" for _, row in df.iterrows()])
print(sql + vals + ";")

方法四:SSIS 封裝 (企業級 ETL)

  • 數據流任務:平面文件源 → OLE DB 目標
  • 配置錯誤輸出、批次大小、事務控制
  • 部署到 SSISDB 定時調度

源數據樣本 (省份-城市-代碼)

直轄市: 北京,上海,天津,重慶 -> 101010100,101020100,101030100,101040100
黑龍江: 哈爾濱,齊齊哈爾,牡丹江... -> 101050101,101050201,101050301...
... (共 34 個省級行政區, 300+ 城市)

目標表結構建議

CREATE TABLE dbo.CityWeatherCode (
    Province NVARCHAR(20) NOT NULL,
    City NVARCHAR(20) NOT NULL,
    Code CHAR(9) NOT NULL PRIMARY KEY,  -- 9 位數字代碼
    CreateTime DATETIME2 DEFAULT SYSUTCDATETIME()
);

數據質量檢查清單

  • 代碼唯一性、長度固定 9 位
  • 城市名無重複 (同省內)
  • 特殊字符轉義 (單引號、反斜桿)
  • 編碼一致性 (UTF-8 / GBK)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved