执行OLEDB属性配置SQL后无法连接数据库报错误26,咨询代码作用及恢复方案
执行代码的作用说明
你执行的是SQL Server系统存储过程,用于修改Microsoft.ACE.OLEDB.12.0驱动的运行属性,该驱动一般用于SQL Server跨源访问Access数据库、Excel文件等场景:
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1:允许ACE驱动在SQL Server的进程空间内运行,可提升跨源查询的性能,但驱动异常时可能影响SQL Server本身的稳定性。EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1:开启ACE驱动的参数化查询支持,解决部分跨源查询时参数无法识别的报错问题。
错误26恢复方案
错误26属于SQL Server客户端连接层面的报错,含义是无法定位到指定的服务器/实例,上述修改OLEDB属性的操作本身不会直接触发该错误,可按以下步骤排查恢复:
- 第一步:检查SQL Server服务状态,按下Win+R输入
services.msc打开服务管理器,找到你使用的SQL Server实例服务,确认状态为正在运行,如果服务异常停止手动启动即可。 - 第二步:检查SQL Server网络配置,打开SQL Server配置管理器,进入对应实例的网络配置页,确认TCP/IP协议处于已启用状态,修改后重启SQL Server服务生效。
- 第三步:确认连接配置正确性,如果使用的是SQL Server命名实例,需确认连接地址格式为
主机名\实例名,同时保证SQL Server Browser服务处于运行状态。 - 第四步:检查防火墙规则,确认Windows防火墙、第三方防火墙已开放SQL Server对应的端口(默认实例默认端口为1433,命名实例为动态分配端口),也可临时关闭防火墙测试连接是否恢复。
- 第五步:如果上述操作都无效,可回滚之前修改的OLEDB属性,需要先通过SQL Server专用管理员连接(DAC)登录实例,执行以下SQL:
USE [master] GO EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 0 GO EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 0 GO
内容的提问来源于stack exchange,提问作者Николай Севрук
相关产品推荐
相关产品推荐

