Tsql 使用动态值更新远程视图会引发错误

Tsql 使用动态值更新远程视图会引发错误,tsql,sql-update,linked-server,Tsql,Sql Update,Linked Server,我有一个通过链接服务器([sql\dev])访问的可更新视图(vwItem) 当我使用静态数据更新视图时,基础表将被更新 更新ci集CertifiedNumber='44444' 从[sql\dev].contact.dbo.vwItem ci与(NOLOCK) 其中ci.CertifiedBatchhid位于(5829) 但当我尝试传递一个动态值时 声明@lo_vch_认证编号varchar(50)= “11111111112222233333” 更新ci 设置CertifiedNumber=

我有一个通过链接服务器([sql\dev])访问的可更新视图(vwItem)

当我使用静态数据更新视图时,基础表将被更新

更新ci集CertifiedNumber='44444'
从[sql\dev].contact.dbo.vwItem ci与(NOLOCK)
其中ci.CertifiedBatchhid位于(5829)

但当我尝试传递一个动态值时

声明@lo_vch_认证编号varchar(50)= “11111111112222233333”
更新ci
设置CertifiedNumber=@lo_vch_CertifiedNumber+'44444'
来自[sql\dev].contact.dbo.vwItem ci 使用(NOLOCK)
其中ci.CertifiedBatchhid位于(5829)

它失败,并显示以下错误消息

该语句已终止。
Msg 16932,第16级,状态1, 第1行
光标有一个FOR UPDATE list和请求的列 要更新的内容不在此列表中。

我甚至不使用光标,但错误中提到了光标

以下是“项目”的定义

创建视图[dbo].vwItem
使用schemabinding
作为
选择CertifiedItemID=cast(CertifiedItemID为varchar),
认证编号[服务]、重量、价格、认证批次
从dbo.tblItem(nolock)


为什么会出现错误?这意味着什么?

通过实现一个存储过程来解决问题,该存储过程更新了vwItem,而不是使用可更新的视图

我知道这并不完全是一回事,但听起来似乎与您的问题有关。