Fråga : Den TSQL bygga bo STUNDEN FINNS

Hi experter, STUNDER för
My FINNS kretsar aldrig exit.
Can som du hjälper mig med denna? @Child_IDint

WHILE för

@Parent_ID

DECLARE FINNS (VALDA InventorytID, ParentID FRÅN bordlägger VAR ParentID = @Parent_ID), @Child_ID = InventorytID för
BEGIN
VALD FRÅN bordlägger VAR ParentID = @Parent_ID
         --gå det nöjt av den första stundloop
tillbaka         --starten understöder STUNDER för loop
FINNS (VALDA InventorytID, ParentID FRÅN bordlägger VAR ParentID = @Child_ID),
BEGIN
         --gå det nöjt av understödjastundloop END
END
tillbaka " klar "

Svar : Den TSQL bygga bo STUNDEN FINNS

Om du önskar till travers en bordlägga - gilla en räkning av material bordlägger, då du kan använda en recursive start för CTE-typquery på @parent och därefter gå den färdiga räkningen tillbaka.

Det låter a bet något liknande vad du är pröva att göra?

Vid långt av exemplet, using en vikarie bordlägga i stället (precis för exemplet - du använder ditt verkligt bordlägger känt),


skapa bordlägger #table (parentid int, inventoryID int, varchar inventory_name (100))
det #table mellanlägget värderar (1.0, ”Parent1”)
det #table mellanlägget värderar (1.2, ”Parent1Child2”)
det #table mellanlägget värderar (2.3, ”Parent2Child3”)
det #table mellanlägget värderar (3.0, ”Parent3”)

-- nu vi har några sampeldata, den recursive queryen för CTE

; med BOM_CTE som
(VALDA InventoryID, ParentID, inventory_name
 FRÅN #Table
 VAR ParentID = 1

 all union

 VÄLJ T.InventoryID, T.ParentID, T.inventory_name
 FRÅN #Table T
 INRE SAMMANFOGA BOM_CTE C på T.ParentID = C.InventoryID
 )
välj parentid, inventoryid som child_id, inventory_name från BOM_CTE
Andra lösningar  
 
programming4us programming4us