Forum: SQL |
Thema:
AW: Geschachtelte Stored Procedure |
Von:
Stephan Dambach (
14.06.2006 12:18) |
Hallo,
du musst in der ersten SP einen zusätzlichen output-parameter definieren.
Z.B. @Ausgabe as int OUTPUT
Im SELECT Statement kannst du über
SELECT @Ausgabe = MAX (Versionen.Version) ....
einen Wert zuweisen. Die erste SP sieht dann wie folgt aus:
CREATE PROCEDURE SP_MaxVersion
@Version INT,
@Ausgabe as int OUTPUT
AS
SELECT @Ausgabe = MAX(Versionen.Version) FROM Versionen GROUP BY Versionen.RohstoffID HAVING (Versionen.RohstoffID)= @Version
GO
------------------------------------------------------------------
In der zweiten SP musst du wie folgt vorgehen:
Zwei Variabeln für das Ergebnis und den Return-Code der ersten SP definieren
Z.B. DECLARE @Ergebnis as int
DECLARE @Return_Code as int
Nun kannst du die erste SP mit dem EXEC command aufrufen.
EXEC @Return_Code = SP1 @Version = ??, @Ausgabe = @Ergebnis OUTPUT
Die SP2 sieht also wie folgt aus:
CREATE PROCEDURE SP_CurrentVersionDate
@IDRohstoff as int
AS
DECLARE @Ergebnis as int
DECLARE @Return_Code as int
EXEC @Return_Code = SP1 @Version = @@IDRohstoff, @Ausgabe = @Ergebnis OUTPUT
SELECT DISTINCT CONVERT(DATETIME,Versionen.vDatum,102) FROM Versionen INNER JOIN Analysen ON Versionen.IDVersion = Analysen.IDVersion INNER JOIN Bestellung ON Analysen.BestellID = Bestellung.BestellID WHERE Versionen.Version = SP_MaxVersion @Ergebnis
GO
mfg
Stephan
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!