sql server如何创建表导入excel的数据

在 SQL Server 中,可以通过几种方式将 Excel 数据导入到数据库表中。下面是一个完整的流程,包括如何创建表,以及将 Excel 数据导入该表的方法:


✅ 方法一:使用 SQL Server Management Studio (SSMS) 的导入向导(推荐方式)

  1. 打开 SSMS 并连接到目标数据库。

  2. 右键点击数据库名 → Tasks(任务)Import Data(导入数据)

  3. 在导入向导中:

    • 数据源选择:Microsoft Excel
    • 文件名:选择你的 Excel 文件(后缀为 .xlsx.xls)。
    • Excel 版本:根据实际选择。
    • 是否首行为列名:勾选 "First row has column names"。
  4. 目标选择:SQL Server Native Client。

  5. 选择目标表(可以自动创建新表或映射已有表)。

  6. 点击 "Edit Mappings"(编辑映射),确认数据类型是否正确。

  7. 执行导入。

✳️ SSMS 会自动生成表结构,也可以在导入前手动建表再映射。


✅ 方法二:T-SQL + OPENROWSET(需配置)

步骤 1:开启 Ad Hoc Distributed Queries
sql 复制代码
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
步骤 2:使用 OPENROWSET 导入(假设你的 Excel 在 C:\data.xlsx,Sheet 名为 Sheet1$):
sql 复制代码
SELECT * 
INTO NewTable
FROM OPENROWSET(
    'Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0;Database=C:\data.xlsx;HDR=YES;IMEX=1',
    'SELECT * FROM [Sheet1$]'
);

⚠️ 注意事项:

  • 要安装 Microsoft Access Database Engine 才能支持 ACE.OLEDB.12.0。
  • SQL Server 必须和 Excel 文件在同一台机器或共享路径可访问。

✅ 方法三:先创建表,再使用 SSIS 或 BULK INSERT

如果你已经知道表结构,可以手动创建表:

创建表:
sql 复制代码
CREATE TABLE ExcelData (
    ID INT,
    Name NVARCHAR(100),
    Age INT
);

然后使用导入工具(如导入向导、SSIS)或临时先导入到 staging 表再处理。


🔁 总结:

方法 优点 缺点
导入向导 简单图形界面 需手动操作
OPENROWSET 可脚本化 配置复杂,需驱动
SSIS / BULK INSERT 自动化强 设置成本高
相关推荐
TDengine (老段)24 分钟前
TDengine 数学函数 PI 用户手册
大数据·数据库·时序数据库·iot·tdengine·涛思数据
aristo_boyunv27 分钟前
Redis发布订阅【充当消息中间件】
数据库·redis·缓存
zz-zjx1 小时前
MySQL 开源主从复制实战指南(SRE 可靠性优先版)
数据库·mysql·开源
一路向北⁢4 小时前
基于 Apache POI 5.2.5 构建高效 Excel 工具类:从零到生产级实践
java·apache·excel·apache poi·easy-excel·fast-excel
Microsoft Word8 小时前
向量数据库与RAG
数据库·人工智能·向量数据库·rag
艾德金的溪9 小时前
redis-7.4.6部署安装
前端·数据库·redis·缓存
小光学长9 小时前
基于Vue的2025年哈尔滨亚冬会志愿者管理系统5zqg6m36(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库·vue.js
我的offer在哪里10 小时前
Redis
数据库·redis·缓存
点灯小铭10 小时前
基于单片机的多模式自动洗衣机设计与实现
数据库·单片机·嵌入式硬件·毕业设计·课程设计