webForumDet fria alternativet

Stored procedure with a loop?

Databaser & SQLur Databashanterare & SQL

2 svar · 406 visningar · startad av evilaid

Medlem sedan apr. 2009433 inlägg
Frågan#1

Hej

Försöker snabba upp lite batabas arbete som jag lägger över i en stored procedure nu..
Problemet är att jag behöver skapa en fråga och sen loopa igenom alla rader?
Googlade lite men det verkar inte som utbudet vad det gäller SP är så brett när det kommer till loopar?

Det jag skulle vilja ha är ju en "Do until db.eof"

Mvh

Medlem sedan juni 200032 967 inlägg
#2

Det beror lite på vad du vill göra, och vilken dbms du använder. Om du verkligen måste loopa kan du kolla in cursors om din dbms stöder det.

Medlem sedan apr. 2009433 inlägg
#3

Jag har sökt lite och hittat en annan lösning men jag har inteen aning om det funkar, kan inte pröva det förän jag är hemma..
Jag har tre tabeller:
pd_order_eco
pd_mounting_details
pd_inventory

dessa har också relationer i nedstigande ordning.
så pd_order_eco(id) -> pd_mounting_details(orderdata)(id) ->pd_inventory(pp_id)

Nu har jag gjort denna kod, vilket jag hoppas fungerar (sjukt nyfiken)

DELETE FROM pd_inventory WHERE pp_id IN (SELECT id FROM pd_mounting_details WHERE order_data IN (SELECT id from pd_order_eco WHERE order_head=@order_head AND order_line=@order_line))

Denna kod hoppas jag tar bort alla rader i pd_inventory som har en relation till pd_mounting_details som i sin tur har en relation till pd_order_eco. Villkoret bygger på kolumner i pd_order_ecol..

127 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)