表:ユーザー(ID、名前、ドブ、CreatedDateに、lastUpdatedDate)
私はlastUpdatedDateを更新したいです名前欄に変更がある場合。
は、まず私が更新トリガーを使用しますが、それは、レコード
いくつかの助けリンクを更新した後に実行され、私は更新トリガの代わりに使用することをお勧めしますが、私は1つが、それがトリガーした後、私のレコードを更新しないことを使用している場合。
どのような解決策ですか?
表:ユーザー(ID、名前、ドブ、CreatedDateに、lastUpdatedDate)
私はlastUpdatedDateを更新したいです名前欄に変更がある場合。
は、まず私が更新トリガーを使用しますが、それは、レコード
いくつかの助けリンクを更新した後に実行され、私は更新トリガの代わりに使用することをお勧めしますが、私は1つが、それがトリガーした後、私のレコードを更新しないことを使用している場合。
どのような解決策ですか?
はよく私がある更新後トリガーでこの問題
に適した解決策を見つけた2テーブルに挿入されるいずれかを設定し、他の一つが削除されます。 両方のテーブルセットから名前を取得することで、そこに値をキャンプすることができます。そこ値が同じであれば、我々はlastUpdatedDateは更新されませんし、値に差がある場合は、代わりにトリガーの、あなたがトリガーで更新をコーディングする必要が使用している場合、我々はlastUdpatedDate
Create TRIGGER [dbo].[User__Update]
ON [dbo].[User]
AFTER Update
AS
BEGIN
SET NOCOUNT ON;
declare @AttributeValue varchar(max)
declare @OldAttributeValue varchar(max)
SELECT @AttributeValue = INSERTED.Name
FROM INSERTED
select @OldAttributeValue=Deleted.Name
FROM Deleted
if(@OldAttributeValue<>@AttributeValue)
BEGIN
IF UPDATE(Name)
BEGIN
update [User] set LastUpdatedDate=GetDate() where name [email protected]
END
END
END
@AaronBertrand –
を更新します。 *あなたのアップデートの代わりに*を実行します。または、更新ステートメントを変更して、他の列を更新することもできます。このテーブルの2つの変更可能な列をコード内のいくつの場所で更新できるか? –
両方の更新を同時に実行するSPを介してのみテーブルにアクセスするとどうなりますか? – Simone
@AaronBertrand okそれは解決策が代わりにトリガーの内部で使用する更新ステートメントだからそれを得た。ありがとう:) –