如何在本地通过SSMS对Access 2003数据库执行查询?
未安装Access 2003时通过SSMS处理.mdb数据库的可行方案
方案一:将.mdb数据导入SQL Server数据库(适合长期使用)
- 打开SSMS,连接到本地服务器
acer-davide,展开目标数据库mydb - 右键点击
mydb→ 「任务」→ 「导入数据」,启动SQL Server导入导出向导 - 在「数据源」下拉列表中选择Microsoft Access(若未找到该选项,需先安装对应位数的Access Database Engine,见下方注意事项)
- 点击「浏览」按钮,选择你的.mdb文件路径,无需Access客户端即可读取
- 「目标」选择SQL Server Native Client,确认服务器为
acer-davide,目标数据库选mydb - 按向导提示选择需要导入的表/视图,配置字段映射规则,完成导入后即可在
mydb中直接执行SQL查询
方案二:创建链接服务器直接查询.mdb(适合临时测试)
1. 安装Access Database Engine
确保安装与SQL Server位数匹配的Access Database Engine(64位SQL Server装64位引擎,32位则装32位),若遇Office版本冲突,可通过管理员命令提示符静默安装:
- 64位引擎:
AccessDatabaseEngine_X64.exe /quiet - 32位引擎:
AccessDatabaseEngine.exe /quiet
2. 执行T-SQL创建链接服务器
在SSMS中打开新查询窗口,运行以下代码(替换文件路径为你的.mdb实际路径):
-- 创建链接服务器 EXEC sp_addlinkedserver @server = N'Access_Link', -- 自定义链接服务器名称 @srvproduct=N'Access', @provider=N'Microsoft.ACE.OLEDB.12.0', @datasrc=N'C:\你的文件路径\你的数据库.mdb'; -- 配置登录映射(解决权限问题) EXEC sp_addlinkedsrvlogin @rmtsrvname=N'Access_Link', @useself=N'False', @locallogin=NULL, @rmtuser=NULL, @rmtpassword=NULL;
3. 测试查询
链接创建完成后,直接执行查询语句访问.mdb中的数据:
-- 替换[表名]为实际的Access表名 SELECT * FROM [Access_Link]...[表名];
关键注意事项
- Access Database Engine的位数必须与SQL Server一致,否则会出现驱动加载失败的错误
- 若.mdb文件路径包含空格,需用引号包裹路径,例如:
@datasrc=N'"C:\My Files\db.mdb"'
内容的提问来源于stack exchange,提问作者Davide
相关产品推荐
相关产品推荐

