[MSSQL] Eine Stored procedure innerhalb eine Stored procedure anrufen + ohne OUT para

Jantz

Erfahrenes Mitglied
Hallo,

ich habe ein Problem.
Ich möchte gerne recursive Stored Procedures aufrufen innerhalb einer stored procedures. Wichtig dabei ist im endeffekt, dass der Wert der aufgerufenen sp summiert wird.

Das Problem dabei ist jedoch, dass ich !kein OutParamter mit angeben kann und kein return, d.h. ich kann nur Select @RetValue = @result meine Ergebnisse zurück geben.

Das Funktioniert soweit auch, doch wie könnte ich jetzt in einer andernen Sp die Werte zusammnfassen ohne outparamter?

Ich bräuchte sowas wie @Result = @Result EXEC MyStoredProcedur 'eineId'
 
Was willst du damit denn bauen?

Wie sieht deine bisherige SP aus und wie schauen die I/O - Parameter aus?

Gruss
SK
 
Hi,

also in der Anwendung nutze ich das Entity Framework (1.0) und die Situation sieht so aus - ich hab 1 Parent und mehrere Childs die wiederum Childs haben also eine Baumstruktur. Die Childs unter dem Parent sollen ein Berechnetes Feld enthalten (jedoch nicht in der DB - sondern nur in den Entities von der Anwendung). Diese berechnete Feld zählt zum Beispiel seine Childs. Das Parent soll dann die summierte Summe seiner Childs aufsummieren.

Ich hoffe das ist verständlich. Natürlich kann ich das auch über den ORM machen - nur verträgt sich das garnicht mit dem Lazy loading und der performance ;).

Also was habe ich gemacht. Ich habe mir bei den ersten Childs eine Stored procedure gebaut - die mir sozusagen den Count zurückgebt von seinen Childs. Das ganze wurde dann in den ORM gemapped und fetig.

Nun wollte ich die SP für den Parent entwickeln und habe mir dazu einen Cursor gebaut, der alle childs durchläuft und die Stored Procedur für die Childs aufruft und dann eben summieren soll.

Und genau da ist das Problem, ich kann keine Stored Procedure mit OUT parameter nutzen, da der ORM dann von mir verlangt, dass ich diesen auch Werte zuweise bevor ich Execute. Ich kann nur zum Schluss ein "Select @retVal" machen um mir den Scalar zurückgeben zulassen.

Jedoch habe ich genau deswegen ein Problem beim Curser, denn ich weiß nicht wie ich die stored procedure erreiche - bzw das weiß ich schon, ich weiß nur nicht wie ich den Rückgabewert davon erreiche.

EXEC sp_CountWP @Id ...

Dass muss eben im Body der Schleife / Cursors summiert werden.
 
Zurück