【发布时间】:2015-11-18 10:49:15
【问题描述】:
我有一个更新列的值格式的触发器,但我想让它在视图而不是表中的多个列上更新。
触发器;
CREATE TRIGGER [dbo].[TriigerName]
ON [dbo].[Table]
AFTER INSERT
AS
BEGIN
UPDATE
t
SET
t.ColName = dbo.FunctionName(i.ColName)
FROM
dbo.table t
INNER JOIN
inserted i
ON
i.PrimaryId = t.PrimaryId
END
我尝试在SET 下添加第二个t.colName = dbo.FunctionName(i.colName),但没有奏效。查询已运行,但未更新第二列中的值。
如何修改此触发器以使其在视图上运行?
谢谢
编辑 1:
我收到此错误; View or function 't' is not updatable because the modification affects multiple base tables.
我也将AFTER INSERT 更改为INSTEAD OF INSERT。
【问题讨论】:
-
更新 t.ColName 两次?
标签: sql sql-server triggers views