Frage : Genistetes gespeichertes Verfahren SQL-2005, wie man einen Wert zu einem Auslöser zurückbringt

Ich versuche, ein gespeichertes Verfahren zu schreiben, das ich von einem Auslöser benennen kann, der eine Komma getrennte Identifikation-Liste des Elternteils zurückbringt und es ist Kinder.  Dieses ist, was ich für das gespeicherte Verfahren habe:

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
CREATE VERFAHREN dbo.ShowHierarchy
(
	@Root int,
    @idList varchar (100) OUTPUT
)
WIE
ANFANGEN
	NOCOUNT AN EINSTELLEN
	Das varchar @IndName ERKLÄREN @IndID int, (30)

	@IndName EINSTELLEN = (AUSERWÄHLTE Identifikation VON dbo.forum_industries, WO Identifikation = @Root)
	VERDOPPELUNG DRUCKEN („-“, @@NESTLEVEL * 4) + @INDNAME
    
    @IDLIST = @IDLIST EINSTELLEN + „,“ + GEWORFEN (@INDNAME ALS VARCHAR (100))

	@IndID EINSTELLEN = (AUSERWÄHLTE MINUTE (Identifikation) VON dbo.forum_industries, WO ParentID = @Root)

	WÄHREND @INDID NICHT UNGÜLTIG IST
	ANFANGEN

        EXEC dbo.ShowHierarchy @IndID, @idList--, @finalIdList
		@IndID EINSTELLEN = (AUSERWÄHLTE MINUTE (Identifikation) VON dbo.forum_industries, WO ParentID = @Root UND Identifikation > @IndID)
           
    ENDE
	
ENDE


When, das ich dieses, ich benenne, erhalten in der Mitteilung die rechte angezeigte Identifikation.  Übrigens ist das @IndName wirklich die Identifikation und ich nenne sie zu verbessern, sobald ich diesem working.

In meinen Auslöser erhalte, den ich nicht sicher bin, wie man ihn benennt und den Wert zurückbekommt.  Mein Triggercode

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
ANFANGEN
    @IndID int ERKLÄREN
    Das varchar @idList ERKLÄREN

	-- , ob wir die eingesetzte oder gelöschte Tabelle überprüfen, abhängig von herausfinden, ob eine Aufzeichnung gelöscht oder eingesetzt oder aktualisiert erhält.
	wenn (Zählimpuls (*) von eingesetzt) vorwählen, <> 0 und (Zählimpuls (*) von gelöscht) vorwählen, = 0 --einsetzen
	anfangen
		@IndID = forum_industriesID VON eingesetzt VORWÄHLEN
	Ende
	wenn (Zählimpuls (*) von eingesetzt) vorwählen, <> 0 und (Zählimpuls (*) von gelöscht) vorwählen, <> 0 --Update
	anfangen
		@IndID = forum_industriesID VON eingesetzt VORWÄHLEN
	Ende
	wenn (Zählimpuls (*) von eingesetzt) vorwählen, = 0 und (Zählimpuls (*) von gelöscht) vorwählen, <> 0 --Löschung
	anfangen
		@IndID = forum_industriesID VON gelöscht VORWÄHLEN
	Ende
    
        
    @idList EINSTELLEN = 0
    ShowHierarchy @IndID, @idList DURCHFÜHREN
  -- Code fragen, um das IDList zu speichern oder vorzuwählen gegründet auf der Liste
END


So, meine Hoffnung ist, dass mein Auslöser dieses ShowHIerarchy benennt und in die Wurzel überschreitet, und bringt einen Wert zurück, wie 5.6.7.10.50.100 und ich das in einer Frage wie verwenden können: Zählimpuls (Identifikation) von der Tabelle vorwählen, in der forum_industriesID (@idList)

The im Code, den ich habe bis jetzt, nichts zurückbringt, also ich nicht die Werte erhalten kann ausweiche. das

I morgens ziemlich neu zu gespeicherten Verfahren und zu den Auslösern des Schreibens und also würden alle mögliche Vorschläge die meisten helpful.
sein

Antwort : Genistetes gespeichertes Verfahren SQL-2005, wie man einen Wert zu einem Auslöser zurückbringt

ändern ERKLÄREN das varchar @idList

zu das @idList ERKLÄREN varchar (100) -- zu eine korrekte Art sein

dann am Ende von Ihrem
triget tun es mögen thi:


 @idList EINSTELLEN = ''
    ShowHierarchy @IndID, @idList Ausgang DURCHFÜHREN
  -- Code fragen, um das IDList zu speichern oder vorzuwählen gegründet auf der Liste

und dann dynamischer sql

das varchar @sqlStatement erklären (4000)
IN, @sqlStatement einstellen = „vorwählt Zählimpuls (Identifikation) von der Tabelle, der forum_industriesID (“ + @idList + ') '

EXEC (@sqlStatement)

Weitere Lösungen  
 
programming4us programming4us