Trigger / MS SQL-Server 7

Hallo,

ich möchte einen INSERT/UPDATE-Trigger schreiben, der in Aktion tritt, wenn in
der Tabelle zwei bestimmte Felder geändert werden. Wenn dies der Fall ist, soll
ein anderes Feld neu berechnet und dann aktualisiert werden.
Folgende Frage, wenn ich schreibe:

CREATE TRIGGER ON tabelle1
FOR INSERT, UPDATE
AS DECLARE @feld1 smallint, @feld2 smallint, @feld3 numeric
SELECT @feld1 = db_feld1, @feld2 = db_feld2 FROM tabelle1
// … Update feld3

Der Trigger tritt hier in Aktion, wenn sich irgendein Feld in der Tabelle ändert,
oder?? (Aus Leistungsgründen schlecht, da sich Tabelle sehr oft ändert und
mehrere 10000 Datensätze darin befinden)
Daher meine Frage, wie kann ich überprüfen, ob 2 bestimmte Felder verändert
wurden?

Danke für eure Hilfe!

MfG,
Andreas Bielmeier

Hi Andreas,
das steht doch in der Online-Hilfestellung von SQL

CREATE TABLE my_table
(a int NULL, b int NULL)
GO

CREATE TRIGGER my_trig ON my_table
FOR INSERT
AS
IF UPDATE(b)
PRINT ‚Column b Modified‘
GO

Sie erhalten ein ähnliches Ergebnis, wenn Sie die COLUMNS_UPDATED()-Klausel verwenden:

CREATE TRIGGER my_trig2 ON my_table
FOR INSERT
AS
IF ( COLUMNS_UPDATED() & 2 = 2 )
PRINT ‚Column b Modified‘
GO

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]