繁体   English   中英

更新表上每个新插入的(同一行)记录的列取决于另一个没有触发器和默认约束的列值

[英]Update a column of each and every newly inserted (same row) record on a table depends on another column value without Trigger and default constraint

我有一个带有标识列(例如Column1 )和整数列Column2 (可为空)的表

在向该表中插入一行时,如果传递给Column2值为null,则复制Column1值。 如果不将null值作为column2参数传递,则保留给定值。

仅在每次插入之后,才应进行此检查和更新。

但是按照给我的指示,不应使用默认约束和触发器(插入后)。

这是出于审计目的。 该表中的记录将从一个表移动/切换到另一表。 交易量和交易量很高(数十亿条记录)。

你能帮我吗?

谢谢,Baskaran

Insert into tablename (column1, columns2) Values (value1, ISNULL(Value2,value1))

我认为这是您所期望的。

如果您真的想在触发器中执行此操作,请尝试以下操作:

CREATE TRIGGER TrgAfterINsert
ON dbo.YourTable
AFTER INSERT
AS
    UPDATE t
    SET Column2 = i.Column1
    FROM dbo.YourTable t
    INNER JOIN Inserted i ON i.Column1 = t.Column1
    WHERE t.Column2 IS NULL

这基本上是在INSERT之后更新YourTable表,并且在column2中插入了NULL任何行都将更新,以使column2等于该行的column1

暂无
暂无

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

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