之前想做一个链接服务器,用于查询其他服务器中的sql数据库数据
我的数据库版本是sql2012
然后就碰到这个错误
尚未注册 OLE DB 访问接口 “SQLNCLI10” 7043 错误
在网上找的解决方法都是
在sql2012上使用需要将@provider=N’SQLNCLI10’ 改为@provider=N’SQLNCLI11’ 或者@provider=N’SQLNCLI’
没用
我发现在我链接服务器下面的访问接口中没有SQLNCL11,但是我确实是安装了这个东西的
首先我用控制台修复Native Client 报错
卸载
重新下载sqlncli.msi
下载地址
sqlcli.msi
安装之后
再重新打开sql management studio
这个时候在链接服务器下面的访问接口里面已经有了SQLNCL11
重新创建链接服务器
===================================
与链接服务器的测试连接失败。
===================================
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)
------------------------------
程序位置:
在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType)
在 Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(String cmd)
在 Microsoft.SqlServer.Management.Smo.LinkedServer.TestConnection()
在 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.LinkedServerConnectionTest.Invoke()
===================================
无法创建链接服务器“”的 OLE DB 访问接口“SQLNCLI11”的实例。 (.Net SqlClient Data Provider)
------------------------------
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=11.00.3128&EvtSrc=MSSQLServer&EvtID=7302&LinkId=20476
------------------------------
服务器名称: .
错误号: 7302
严重性: 16
状态: 1
过程: sp_testlinkedserver
行号: 1
------------------------------
程序位置:
在 Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction action, Object execObject, DataSet fillDataSet, Boolean catchException)
在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType)
感谢CSDN里的大神们,受到文章的启发
把服务SQL Server(MSSQLSERVER)–>属性–》登录–》本地账户登录
重启服务之后,再测试连接
问题解决。