簡體   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