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

相关推荐
红莲凪是1 天前
使用二次封装的Excel COM 组件操作Excel\WPS ET IExcelRange 高级应用
python·excel·wps
用户298698530141 天前
如何使用免费工具在线将 Excel 转换为 XML 格式
人工智能·后端·excel
开开心心就好1 天前
内存清理工具定时自动清理开机自启动
java·开发语言·elasticsearch·ocr·excel·音视频·big data
开开心心就好1 天前
电脑内存优化工具一键释放内存超简单
java·开发语言·macos·arcgis·ocr·excel·音视频
SunnyDays10112 天前
Python 将 Excel(XLS/XLSX)转换为 JSON:导出工作簿、工作表、单元格区域与自定义 JSON 结构
python·json·excel·excel 转 json·导出 excel 到 json·xlsx 转 json·xls 转 json
chatexcel2 天前
ChatExcel AI Word 升级:多模态读资料、按模板生成、智能排版配图,还能批注修订和联动Excel 复核
人工智能·ai·word·excel·ai写作
北极糊的狐2 天前
Excel快速拆分一列数据为两列(领养例子)该摘要描述了如何将包含姓名和电话的混合数据列拆分为单独的两列
excel
搭贝低代码2 天前
财务管控系统架构设计:从Excel到数字化管控平台的技术跃迁
低代码·系统架构·excel
ms365copilot3 天前
Excel 新模型Claude Opus 5
人工智能·excel