2016-04-08 4 views
0

Ich habe einen Trigger erstellt, so dass nach zwei Freunde in einer Social-Media-Website diesen Trigger ausgegeben wird. Ich versuche, einen temporären Trigger auszugeben, so dass, sobald sie in der Ausgabeansicht befreundet sind, eine Anweisung angezeigt wird. Was genau ist der Syntaxfehler bei Output im folgenden Code? Wenn es eine Verbesserung des Codes geben könnte, informieren Sie mich bitte.OUTPUT-Klausel in SQL SERVER-Fehler

CREATE TRIGGER [a01].[trg_addedFriend] 
ON [a01].[tbl_friends] 
AFTER INSERT 

AS 
    BEGIN 

    DECLARE @FriendA NVARCHAR(45) 
    DECLARE @FriendB NVARCHAR(45) 

    SELECT @FriendA = ownerAccountID 
     FROM inserted; 
    SELECT @FriendB = friendAccountID 
     FROM inserted; 

    OUTPUT 'Trigger : '[email protected]+' and '[email protected]+' become friends.' 
    END 
GO 
+2

Warum haben Sie OUTPUT überhaupt statt SELECT? Außerdem, wer wird das Ergebnis des Triggers * lesen *? –

+0

Die Auswahl wird verwendet, um die Freunde-IDs abzurufen, und die Ausgabe wird verwendet, um die folgenden IDs in der Ansicht auszugeben. Die Frage ist, ob die Ausgabeanweisung korrekt ist. – BakingCake

+0

Die verwendeten Phrasen sind identisch. Deshalb gibt es keine OUTPUT-Anweisung. Die Rücksendung von Daten erfolgt mit SELECT. Vielleicht hast du OUTPUT für PRINT verwirrt? Wiederum wäre niemand in der Lage, diese Nachricht zu lesen. –

Antwort

1
  1. Ich glaube, Sie die PRINT-Anweisung wollen.

    CREATE TRIGGER [a01] [trg_addedFriend] ON [a01] [tbl_friends] AFTER INSERT

    AS 
        BEGIN 
    
        DECLARE @FriendA NVARCHAR(45) 
        DECLARE @FriendB NVARCHAR(45) 
    
        SELECT @FriendA = ownerAccountID 
         FROM inserted; 
        SELECT @FriendB = friendAccountID 
         FROM inserted; 
    
        Print 'Trigger : '[email protected]+' and '[email protected]+' become friends.' 
        END 
    GO 
    
  2. .

    TRIGGER SIND SET BASIERT. Wenden Sie die Logik "Zeile für Zeile" NICHT in einem Trigger an.

http://www.jimmcleod.net/blog/index.php/2008/06/05/triggers-set-based-not-row-based/