2012-04-06 13 views
0

Ich möchte einen Trigger für eine SQL Server-Tabelle erstellen.Erstellen Sie Trigger in SQL Server-Tabelle

Tabelle hat 8 Spalten. Einer von ihnen ist email. das heißt [email protected]

Was ich will, ist: Wenn eine neue Zeile in die Tabelle eingefügt wird, sollte der Auslöser meine ISP Spalte aktualisieren mit msn.com

CREATE TRIGGER TIGUPDATEISP ON SUBS 
    FOR INSERT 
    AS 
    UPDATE SUBS 
    SET ISP = SELECT RIGHT(EMAIL, LEN(EMAIL) - CHARINDEX('@', EMAIL) FROM INSERTED) 

Das alles meine isp mit dem letzten Wert aktualisiert. Allerdings wollte ich einen wie bei jedem Einsatz aktualisieren.

Antwort

2

Das funktioniert, wenn die ISP Spalte

CREATE TRIGGER TIGUPDATEISP ON Subs 
    INSTEAD OF INSERT 
AS 
BEGIN 

    SET NOCOUNT ON; 

    INSERT Subs (EMAIL, Isp) 
    SELECT EMAIL, RIGHT(EMAIL, LEN(EMAIL) - CHARINDEX('@', EMAIL)) FROM INSERTED 

END 
+0

Genie Das funktioniert, wenn die ISP Spalte NULLS erlaubt keine NULL-Werte

CREATE TRIGGER TIGUPDATEISP ON Subs FOR INSERT AS BEGIN SET NOCOUNT ON; UPDATE SUBS SET ISP = (SELECT RIGHT(EMAIL, LEN(EMAIL) - CHARINDEX('@', EMAIL)) FROM INSERTED WHERE SUBS.ID = INSERTED.ID) FROM INSERTED WHERE SUBS.Id = INSERTED.ID END 

ermöglicht. Danke. – Peter