Stored procedures 通过OPENDATASOURCE执行存储过程会抛出错误“;“OLE DB提供程序”;SQLCLI";“尚未注册”;

Stored procedures 通过OPENDATASOURCE执行存储过程会抛出错误“;“OLE DB提供程序”;SQLCLI";“尚未注册”;,stored-procedures,sql-server-2008-r2,Stored Procedures,Sql Server 2008 R2,我试图使用OPENDATASOURCE将一些记录插入远程SQL Server数据库,然后执行一个存储过程。下面的insert语句非常有效: INSERT OPENDATASOURCE('SQLNCLI','Server=MyServer;Database=TestDB;User Id=sa;Password=*****;').TestDB.dbo.MyTable (Col1, Col2, Col3)

我试图使用OPENDATASOURCE将一些记录插入远程SQL Server数据库,然后执行一个存储过程。下面的insert语句非常有效:

INSERT OPENDATASOURCE('SQLNCLI','Server=MyServer;Database=TestDB;User Id=sa;Password=*****;').TestDB.dbo.MyTable
                (Col1,
                Col2,
                Col3)
            SELECT Col1,
                Col2,
                Col3
            FROM AnotherTable
但是,当我执行以下存储过程时

EXEC OPENDATASOURCE('SQLCLI','Server=MyServer;Database=TestDB;User Id=sa;Password=*****;').TestDB.dbo.MyStoredProcedure
我有一个错误:

Msg 7403,16级,状态1,第26行 OLE DB提供程序“SQLCLI”尚未注册

本地SQL Server为2008 R2 64位,远程SQL Server为SQL Server 2012。有人知道问题出在哪里吗?我迫切需要一个解决办法


非常感谢您的评论。

您的第一句话使用了
SQLNCLI
。第二个使用
SQLCLI
。将第二个更改为使用
SQLNCLI
Hi Nick,好样的!我整个晚上都不高兴!现在可以了。非常感谢你。