使用参数更新链接的SQL Server

时间:2010-06-30 13:10:18

标签: sql linked-server

我有两个链接的SQL服务器,我试图在另一台服务器上发布更新但是收到错误“无法准备语句。”,后面跟着“必须声明标量变量”@Shipper_Nbr“ “

我使用的语法是:

update DBSERVER.DBNAME.DBO.TABLE set Field = @Value WHERE ID = @id

这样做的正确方法是什么?

更新:

我尝试使用存储过程并获得相同的结果。另外,我注意到了其他信息。语法检出,我只在尝试保存存储过程时出错。此外,我注意到错误还指出“OLE DB提供程序”SQLNCLI“链接服务器”WARSQLVS01“返回消息”延迟准备无法完成。“。”

确认 - 我想通了。这是一个单独的行,我试图从OPENQUERY select语句中传递参数。对于那个很抱歉! : - \

3 个答案:

答案 0 :(得分:1)

不完全确定这个问题是什么,但我们不得不通过在远程服务器上设置存储过程并调用它来解决类似的问题,而不是试图在本地操作远程服务器上的项目。 / p>

答案 1 :(得分:0)

您确定问题出在服务器链接上,而不是SQL语句的其余部分吗? @Shipper_Nbr值在哪里分配?

答案 2 :(得分:0)

如果这样可以使用

UPDATE T
SET Arrive_DT = @Actual_DateTime 
WHERE Shipper_Nbr = @Shipper_Nbr and Container_Name = @Container_Name 
FROM WARSQLVS01.ISS3_AND_DHAM_PROD.dbo.ISS_AND_data_Shipments  as T