2016-05-23 3 views
0

Ich habe erst vor kurzem mit Triggern erforscht. Ich habe meine Datenbank Mail-Funktion eingerichtet und alles funktioniert gut. Mein Trigger funktioniert perfekt, wenn der Spaltenwert geändert wird, aber wie bekomme ich den Wert/Zeile, die sich geändert hat?T SQL Nach dem Update Trigger in der Spalte erhalten den Wert geändert

USE [database] 
GO 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
ALTER TRIGGER [dbo].[triggerName] ON [dbo].[tableName] 
FOR UPDATE 
AS 

declare @cust varchar(100); 


    if update(Column) 
    BEGIN 
    SET NOCOUNT ON 
     set @cust = THE VALUE MUST GO HERE I ASSUME 
    END 
    EXEC msdb.dbo.sp_send_dbmail 
    @recipients = '[email protected]', 
    @profile_name = 'ProfileName', 
    @subject = 'Customer Information Changed', 
    @body = @cust; 
+0

In SQL Server gibt es keinen "zu berücksichtigenden" Wert - löst einmal pro * Anweisung * aus, nicht einmal pro * Zeile *, und Sie haben möglicherweise * mehrere * Werte, die sich geändert haben. –

Antwort

1

Vergleichen Sie die Werte in inserted und deleted. Wenn sie nicht identisch sind, hat sich der Wert geändert.

Verwandte Themen