没有 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

相关推荐
weixin_493503671 天前
商会系统里的在线文件预览:PDF/Word/Excel 三种实现与选型(Node + 前端实战)
pdf·word·excel
Darling噜啦啦1 天前
Text2SQL 实战:自然语言直连数据库,让 AI 自动写 SQL 完成 CRUD 与多表联查
llm·sql server
asdzx671 天前
Python 解析 Excel 数据、图片与图表的实现方案
python·excel
慧都小妮子2 天前
GcExcel 服务端 Excel 组件:无需安装 Office 的 Java/.NET 报表方案
java·.net·excel·gcexcel·服务端excel组件
The Future is mine2 天前
Excel如何只允许对部分表格内容进行修改
excel
2601_962099462 天前
Python xlwt设置excel单元格字体及格式
python·excel·xlwt·样式设置·单元格格式
葡萄城技术团队2 天前
不会写 SUMIFS 也能做汇总?用 SpreadJS AI 生成并解释 Excel 公式
人工智能·excel
2501_933670793 天前
采购运营校招Excel能力清单:函数、透视表、ERP数据与SQL入门
数据库·sql·excel
netho03 天前
影刀RPA初级证书+ Excel 全自动数据看板
excel·rpa
2501_930707783 天前
使用C#代码设置 Excel 单元格的背景颜色和图案
excel