导入Excel到SQLSERVER并生成表查询
1. 定位数据库与启动向导
首先,打开 SSMS 并连接到你的数据库实例。
-
1. 在左侧“对象资源管理器”中,展开数据库列表。 -
2. 右键点击你想要存放数据的数据库(例如 Amadeus)。 -
3. 在弹出的菜单中选择 “任务” -> “导入数据”。启动导入向导
2. 选择数据源
弹出的“SQL Server 导入和导出向导”欢迎页面直接点击“下一步”,进入数据源选择界面:
-
• 数据源:选择 Microsoft Excel。 -
• Excel 文件路径:点击“浏览”选中你的 .xls文件。
-
• 首行包含列名称:勾选此项(因为我们的 Excel 第一行是表头)。

点击“下一步”。
3. 选择目标
这一步配置数据要去的“目的地”:
-
• 目标:选择 SQL Server Native Client(或Microsoft OLE DB Provider for SQL Server)。 -
• 服务器名称:输入你的服务器实例名(如 .代表本地)。 -
• 身份验证:选择“使用 Windows 身份验证”或“使用 SQL Server 身份验证”。 -
• 数据库:确认是刚才右键选中的那个数据库。 -

-
点击“下一步”。
4. 指定表复制或查询
在这个界面,选择 “复制一个或多个表或视图的数据”。这是最简单直接的方式,适合整表导入。

点击“下一步”。
5. 选择源表和目标视图
系统会自动读取 Excel 中的 Sheet,并在列表中显示:
-
1. 勾选你要导入的 Sheet(例如 Sheet1$)。 -
2. 在“目标”列,系统会默认生成一个表名(通常也是 Sheet1$)。我们可以直接在这里修改表名为EmployeeInfo。点击“确定”,然后点击“下一步”。
6. 运行并完成
确认“立即运行”被勾选,点击“下一步”,最后点击“完成”。

等待进度条执行完毕,如果看到全部为绿色对勾,说明导入成功!
导入成功后,我们通过 SQL 语句来验证一下数据是否真的进来了。
1. 编写查询语句
点击 SSMS 工具栏的 “新建查询”,输入以下 SQL 代码:
-- 1. 查询所有员工信息SELECT*FROM EmployeeInfo;-- 2. 查询技术部的员工姓名和入职日期SELECT 姓名, 入职日期 FROM EmployeeInfo WHERE 部门 ='技术部';-- 3. 按入职日期升序排列SELECT*FROM EmployeeInfo ORDERBY 入职日期 ASC;
常见问题排坑
在实际操作中,你可能会遇到以下两个经典问题,这里给出解决方案:Q1:提示“未在本地计算机上注册 Microsoft.ACE.OLEDB.12.0 提供程序”
-
• 原因:这是因为服务器上没有安装 Access Database Engine 驱动,或者 SSMS 与 Office 的位数不一致(如 Office 是 32位,SSMS 是 64位)。 -
• 解决:下载安装 AccessDatabaseEngine.exe(注意下载对应位数的版本)。如果位数冲突,可以通过修改 SSMS 的配置文件强制运行,或者安装缺失的驱动程序。https://www.microsoft.com/en-us/download/details.aspx?id=54920
-
Q2:导入后数据出现 NULL 或格式错乱 -
• 原因:Excel 中同一列混合了文本和数字,或者日期格式不规范。SSMS 以前几行的数据类型来判断整列类型。 -
• 解决:在 Excel 中先整理数据格式,或者在导入向导的“编辑映射”步骤中,显式指定列的数据类型(如将容易出错的列强制设为 NVARCHAR)。
夜雨聆风
