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

2026-07-30

本文可直接复制到 CSDN 编辑器发布。建议配图:数据库类型选 SQL Server、表名 dbo.Users 或 #Temp、映射矩阵、SSMS 执行脚本示意(可打码)。

没有 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 表时勾选

生成示意:

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


发布到 CSDN 时的建议

推荐标题(任选):

  1. 没有 SSMS 导入向导?Excel/CSV 一键生成 SQL Server INSERT 脚本
  2. Excel 导入 SQL Server 实战:生成 dbo INSERT,支持 # 临时表
  3. 测试造数:把 Excel 变成可在 SSMS 执行的 SQL 脚本(免费)
  4. CSV 中文乱码 + 要进 SQL Server?先转成 .sql 再执行更稳

推荐标签:

SQL Server Excel INSERT SSMS CSV 数据库 T-SQL 在线工具 测试数据 DBA

原创声明: 勾选「原创」,保留专页与工具链接。

引流话术(可放文末):

工具免费使用。若你更关心「通用 Excel 转 INSERT(多数据库)」,可看姐妹篇或直接打开:https://www.comtools.cn/excel-to-sql
今日两篇建议间隔 2~3 小时发布,标签略作区分(本篇偏 SQL Server / SSMS)。