Sql server 链接服务器的存储过程错误

Sql server 链接服务器的存储过程错误,sql-server,stored-procedures,oledb,linked-server,Sql Server,Stored Procedures,Oledb,Linked Server,我已经设置了一个存储过程来更新链接服务器上的数据库 CREATE procedure MyProcedure @myfield varchar(50), @mycolumn varchar(10) AS UPDATE MyDB SET myfield = @myfield WHERE mycolumn = @mycolumn GO 然后像这样执行它 exec linkedDB...MyProcedure @myfield = '0', @mycolumn = '12345' 但我总是犯这

我已经设置了一个存储过程来更新链接服务器上的数据库

CREATE procedure MyProcedure
@myfield varchar(50),
@mycolumn varchar(10)

AS

UPDATE MyDB
SET myfield = @myfield
WHERE mycolumn = @mycolumn
GO
然后像这样执行它

exec linkedDB...MyProcedure @myfield = '0', @mycolumn = '12345'
但我总是犯这个错误

无法为远程服务器“linkedDB”设置参数

我在网上搜索过,但似乎什么都没找到

更新

这就是我现在正在尝试的

EXEC ('MyProcedure (?,?)', '0', '12345') AT [linkedDB]
现在似乎给了我这个错误

“,”附近的语法不正确

我在SQL Server 2000中使用OLE DB

更新

我也试过这个

exec linkedDB...MyProcedure '0', '12345' 
现在我得到了这个错误

语法错误或访问冲突“靠近“;”的分析错误”


要允许使用参数,我认为您必须在您的: 您可以在Sql Server managament studio中的“服务器对象/链接服务器/提供程序/右键单击所需提供程序的属性”下找到它们

动态参数

指示提供程序允许的参数标记语法为“?” 参数化查询。设置此选项 仅当提供程序支持 ICommandWithParameters接口和 支持将“?”作为参数 标记。设置此选项允许使用SQL 要执行参数化操作的服务器 对提供者的查询。这个 能够执行参数化 可以对提供者进行查询 为客户带来更好的性能 某些疑问

根据评论编辑:

对于OLEDB,参数标记为?(问号)没有名字。 您应该尝试使用这种sintax调用存储过程:

EXEC ('exec MyProcedure ?, ?', @parVal1, @parVal2) AT [LINKED SERVER]

我刚刚更改了链接服务器上的设置,但似乎没有任何更改?有什么想法吗?链接服务器提供程序允许参数吗?我不确定如何检查,链接服务器是什么类型的数据库?它是一个运行SQL server 2000的OLE DB。我有一些难以测试的地方,但是,我编辑了EXEC。试着不用括号