07. november 2003 - 12:08Der er
8 kommentarer og 1 løsning
Kald af stored procedure flere gange
Hejza...
Jeg har følgende kode:
CREATE PROCEDURE deleteCategory @categoryId int AS EXEC deleteDocument SELECT document FROM documentList WHERE category = @categoryId DELETE FROM category WHERE id = @categoryId GO
som jo ikk virker! Jeg vil kalde deleteDocument for hver document fundet i tabellen documentList.
Tabellen documentList knytter tabellerne document og category sammen. Når jeg sletter en category vil der være x antal indgange i documentList knyttet til denne og i disse skal jeg kalde en anden stored procedure (deleteDocument) med parameteret document.
Dvs. at hvis der er 5 tupler med det medsendte categoryId, så skal deleteDocument kaldes 5 gange med hvert af id'erne (document) fundet i documentList.
Her er det færdige resultat - syntaxen var næsten rigtig:
CREATE PROCEDURE deleteCategory @categoryId int AS DECLARE @document int DECLARE #myCursor cursor FOR SELECT document FROM documentList WHERE category = @categoryId
OPEN #myCursor FETCH NEXT FROM #myCursor INTO @document WHILE @@fetch_status = 0 BEGIN EXEC deleteDocument @document FETCH NEXT FROM #myCursor INTO @document END
CLOSE #myCursor DEALLOCATE #myCursor DELETE FROM category WHERE id = @categoryId GO
Jeg siger mange tak for hjælpen og pointene går til bleze... og go weekend!
Bare man lige får et skub i den rigtige retning, så er det jo bare et spørgsmål om at fedte det til... Har aldrig brugt cursor før, så det havde nok taget mig et stykke tid før jeg var faldet over den... :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.