没有 SSMS 导入向导?Excel/CSV 一键生成 SQL Server INSERT 脚本

前言

把 Excel 弄进 SQL Server,很多人第一反应是:

  • 开 SSMS →「导入数据」向导
  • 或者装一堆驱动、配数据源,搞半小时

实际开发里更常见的是:

  1. 测试环境造数 :产品给一张表,要进 dbo.Users
  2. 脚本要进 Git:评审、回放,不能只靠向导点一点
  3. 只有 CSV:编码一乱,中文全变问号
  4. 机器上没装完整导入组件,或权限不允许随便连外部 Excel

更稳的做法是:先把表格变成 可执行的 .sql,在测试库用 SSMS / Azure Data Studio 跑一遍,再决定是否上生产。

我用的是站内 Excel 转 SQL ,数据库选 SQL Server 即可;也有专页说明。

SQL Server 专页: https://www.comtools.cn/excel-to-sql-server

通用工具(方言里选 SQL Server): https://www.comtools.cn/excel-to-sql


一、适合谁?

角色 场景
后端 / 全栈 种子数据、配置表初始化
测试 多环境重复灌数
DBA / 运维 评审 INSERT 脚本、临时表中转
数据分析 业务 Excel 进库后再查

不适合:每天百万行的正式 ETL(那该用 SSIS / 管道);适合 一次性、可评审、可版本管理 的导入。


二、SQL Server 侧你能得到什么?

能力 说明
dbo.表名 顶栏直接填 dbo.Users
#临时表 表名以 # 开头,可配合 CREATE TABLE
Unicode 字符串 常见输出为 N'...'
空单元格 输出 SQL NULL
INSERT / UPDATE / DELETE / SELECT 同一工具切换语句类型
批量 INSERT 多行 VALUES,减少语句条数
CREATE TABLE 需要 staging 表时勾选

生成示意:

sql 复制代码
INSERT INTO dbo.Users (UserId, Name, Email)
VALUES (1001, N'张三', N'zhang@example.com');
INSERT INTO dbo.Users (UserId, Name, Email)
VALUES (1002, N'李四', N'li@example.com');

三、操作步骤(对准 SSMS)

1. 整理 Excel / CSV

  • 第一行表头,与字段名尽量一致(不一致可在映射里改)
  • CSV 建议 UTF-8;有 BOM 一般也能识别
  • 去掉合并单元格、空表头行

2. 上传并选 SQL Server

打开 https://www.comtools.cn/excel-to-sql-server 或主工具页,上传文件后:

  • 数据库类型:SQL Server
  • 语句类型:造数选 Insert
  • 表名:dbo.YourTable 或 #ImportBatch

3. 映射列

  • Include:参与插入的列
  • 生成数据:可用 GUID / Today 等(不读单元格)
  • UPDATE/DELETE 时务必设好 WHERE 列(主键或业务唯一键)

4. 生成 → 下载 → SSMS 执行

  1. Generate SQL
  2. 行数多就 下载 .sql,别只靠复制预览
  3. 在 测试库 打开 SSMS 执行
  4. 抽查行数、SELECT TOP 100、必要索引与约束

生产前:备份 ;大脚本 分批;可用事务包一层,失败回滚。


四、临时表中转怎么用?

适合:先导入 #Staging,清洗后再 INSERT INTO dbo.正式表 SELECT ...。

  1. 表名填 #StagingUsers
  2. 勾选 CREATE TABLE + INSERT
  3. 在 SSMS 同一会话执行(# 临时表会话级)
  4. 校验后再写入正式表

五、常见坑

1. 中文乱码

优先 UTF-8 CSV;或直接用 .xlsx。在 SSMS 看结果集编码是否正常。

2. 主键冲突

导入前用去重工具清 Email / 业务键:https://www.comtools.cn/excel-remove-duplicates

3. 误删 / 误更新

DELETE、UPDATE 必须有 WHERE 列 ;工具也不会生成无条件全表 DELETE。先 SELECT 预览影响行数。

4. 脚本过大

分文件生成,或开批量 INSERT 后仍按批次执行;避免一次粘贴几十万行到查询窗口。


六、和「导入向导」怎么选?

SSMS 导入向导 生成 .sql 再执行
速度(小表) 快 快
可进 Git / Code Review 难 易
多环境复现 弱 强
无完整导入组件 可能不可用 浏览器即可生成
超大持续同步 更合适用管道 仅适合中小批量

结论:要可重复、可评审 → 脚本;要点几下完事且环境齐全 → 向导。


七、相关链接

用途 链接
SQL Server 专页 https://www.comtools.cn/excel-to-sql-server
通用 Excel 转 SQL https://www.comtools.cn/excel-to-sql
INSERT 说明 https://www.comtools.cn/excel-to-sql-insert
图文教程 https://www.comtools.cn/excel-to-sql/tutorial
CSV 直接转 SQL https://www.comtools.cn/csv-to-sql
Excel 工具箱 https://www.comtools.cn/Tools/Excel

站内还有更细的导入注意事项文(编码、类型、分批),可在工具页底部或博客区找到。


八、小结

没有导入向导、或不想依赖向导时:

Excel/CSV → 选 SQL Server → 生成 INSERT → 测试库 SSMS 执行 → 再上生产。

免费、免注册;脚本可留档、可复跑。

开始生成: https://www.comtools.cn/excel-to-sql-server


工具免费使用。若你更关心「通用 Excel 转 INSERT(多数据库)」,可看姐妹篇或直接打开:https://www.comtools.cn/excel-to-sql

相关推荐
gudufy1 天前
EasyAdminBlazor Excel 导入源码解析:数据验证、权限与事务如何处理?
excel·blazor·admin
copilot中国版1 天前
Copilot + Excel鱼骨图:让根因分析从“凭经验”变成“有依据”
人工智能·excel·copilot
泡海椒1 天前
JQuick-Excel 字段映射实战:用 MAPPING 固化 Excel 表头与业务字段契约
xml·java·开发语言·excel
开开心心就好1 天前
视频模糊怎么修复?免费工具支持批量处理
java·前端·人工智能·智能手机·pdf·excel
Data-Miner1 天前
能处理Excel表的AI怎么选?脚本能复用,一次买断后期不烧 token
大数据·人工智能·excel
ClouGence2 天前
开源数据库管理工具 CloudDM 4.3.0 发布,支持 SQL 收藏,多数据源语法支持大幅增强
数据库·oracle·sql server
Andreapiki2 天前
数据分析师校招技术备考指南:SQL、Python、统计学、BI学习路径
sql·excel
DolphinDB智臾科技2 天前
插件上新 | 让 Excel 数据更顺畅地接入 DolphinDB
大数据·excel
慧都小妮子2 天前
信创改造卡在Excel?用国产表格方案 SpreadJS+GcExcel 破局
excel·spreadjs·表格控件·信创改造·麒麟统信兼容·excel模板迁移·apache poi替代
shjita2 天前
excel中的数据处理-----分列操作
excel