繁体   English   中英

SQL Server而不是插入触发器 - 是否有一种简单的方法来修改单个列?

[英]SQL Server instead of insert triggers - is there an easy way to modify a single column?

鉴于SQL Server不允许在触发器中修改逻辑INSERTED和DELETED表,是否有一种简单的方法来更改单个列的值而不必重写整个insert语句?

例如,我应用触发器的表有20列。 我想修改INSERTED表中一列(每行)的值,然后将该行插入表中。 我是否可以这样做而无需编写带有19列的插入语句以及我正在修改其值的一列?

是的,只需使用“插入后”触发器,而不是“替代插入”触发器。

这样,该行已经插入到表中,您所要做的就是发出(精心设计的)更新语句,通常是通过内部连接到主键字段上的INSERTED表。

要向BradCs回答更多细节:

使用连接进行更新的语法有点不稳定

Update table
  set columnA = inserted.columnA / 10
from table
inner join inserted on table.id = inserted.id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM