我有一个存储过程可以对表进行简单更新:
ALTER PROCEDURE [dbo].[sp_UpdateModel]
(
@status int,
@name nvarchar(127),
-- ... omited for brevity ...
@tourlink nvarchar(256),
@Original_id int
)
AS
UPDATE dbo.models
SET
status = @status,
name = @name,
-- ... omited for brevity ...
tourlink = @tourlink
WHERE (id = @Original_id)
(此程序的省略部分只是更多的参数定义和更新,没有什么花哨的)
此过程正常工作,直到我向名为dbo.models
tourlinkcoverimage
nvarchar(256)
的基础表Msg 207, Level 16, State 1, Line 1
Invalid column name 'tourlinkcoverimage'.
Msg 207, Level 16, State 1, Line 1
Invalid column name 'tourlinkcoverimage'.
Msg 207, Level 16, State 1, Line 1
Invalid column name 'tourlinkcoverimage'.
Msg 207, Level 16, State 1, Line 1
Invalid column name 'tourlinkcoverimage'.
Msg 207, Level 16, State 1, Line 1
Invalid column name 'tourlinkcoverimage'.
Msg 207, Level 16, State 1, Line 1
Invalid column name 'tourlinkcoverimage'.
Msg 207, Level 16, State 1, Line 1
Invalid column name 'tourlinkcoverimage'.
Msg 207, Level 16, State 1, Line 1
Invalid column name 'tourlinkcoverimage'.
添加了一个新列。该字段可以为空,因此我不需要将其包含在此更新语句中(它在另一个过程中单独更新。)
我可以设置此列的值并成功查询它的值,但上述过程会引发以下错误:
{{1}}
为什么此过程会抛出此错误?我该如何解决?
答案 0 :(得分:2)
检查表格上的触发器。我的猜测是存在一个,它正在进行某种形式的插入到目标表中。
“触发器就像伏都教代码;你更新一个值,突然之间 在隔壁的大楼里灯火通明“ - 理查德坎贝尔,通过 演讲,2008年