Frage : TSQL genistet, WÄHREND EXISTIERT

Hallo helfen Experten,
My, WÄHREND Schleife nie exit.
Can Sie EXISTIERT, mir mit diesem?

@Parent_ID

DECLARE @Child_ID int

WHILE EXISTIERT (AUSERWÄHLTES InventorytID, ParentID von der Tabelle WO ParentID = @Parent_ID)
BEGIN
VORWÄHLEN @Child_ID = InventorytID von der Tabelle IN DER ParentID = @Parent_ID
         --den Inhalt vom ersten zurückbringen während loop

         --zweites loop
beginnen, WÄHREND (AUSERWÄHLTES InventorytID, ParentID von der Tabelle WO ParentID = @Child_ID)
BEGIN
EXISTIERT         --den Inhalt der Sekunde zurückbringen während loop
END
END

Antwort : TSQL genistet, WÄHREND EXISTIERT

Wenn Sie zu den travers eine Tabelle - wie eine Stückliste Tabelle, dann wünschen, Sie eine rekursive CTE Art Frage kann das Beginnen an @parent benutzen und die komplette Rechnung dann zurückbringen.

Mag dieser Ton ein bisschen, was Sie versuchen, zu tun?

Über Beispiel using eine Temptabelle anstatt (gerade für das Beispiel - Sie verwenden Ihren realen Tabellennamen)


die Tabelle herstellen, die #table ist (parentid int, inventoryID int, das inventory_name varchar (100))
#table Werte (1.0, „Parent1“ einsetzen)
#table Werte (1.2, „Parent1Child2“ einsetzen)
#table Werte (2.3, „Parent2Child3“ einsetzen)
#table Werte (3.0, „Parent3“ einsetzen)

-- jetzt haben wir etwas sampel Daten, die CTE rekursive Frage

; mit BOM_CTE wie
(AUSERWÄHLTES InventoryID, ParentID, inventory_name
 VON #Table
 WO ParentID = 1

 Anschluss aller

 T.InventoryID, T.ParentID, T.inventory_name VORWÄHLEN
 VON #Table T
 INNER BOM_CTE C auf VERBINDEN T.ParentID = C.InventoryID
 )
parentid, inventoryid vorwählen als child_id, inventory_name von BOM_CTE
Weitere Lösungen  
 
programming4us programming4us