我一直想知道是否有办法使用而不是更新触发器来更新和记录特定列,同时允许其他列的正常更新
答案 0 :(得分:1)
您无法在表格的一部分上使用DML触发器。触发器适用于整个表。
但是,您可以使用所需逻辑的instead of
触发器,然后直接从inserted
更新包含数据的表。
一个简单的例子:
create table myTable
(
colId int identity(1,1),
col1 int,
col2 varchar(10)
)
go
create trigger t_iou on myTable instead of update
as
update t
set col1 = i.col1,
col2 = i.col2 + ' ('+ cast(i.col1 as varchar) +')'
from myTable t
inner join inserted i on(t.colId = i.colId)
go