einzuschließen Ich habe eine SELECT-Anweisung, die eine Reihe von Zeilen zurückgibt.SQL Server-Cursor, um den Wert in Select
Aus jeder Zeile muss ich einen Wert von einer Spalte abrufen und an eine Stored Procedure übergeben, um einen Wert zu erhalten, den ich für den Satz von Zeilen selbst liefern müsste.
Zum Beispiel:
DECLARE @col1 int
DECLARE @col2 int
DECLARE @col3 varchar(20)
DECLARE myCursor CURSOR FOR
SELECT col1, col2, col3
FROM table1
WHERE....
OPEN myCursor
FETCH NEXT FROM myCursor
INTO @col1, @col2
WHILE @@FETH_STATUS = 0
BEGIN
SET @col3 = EXEC proc_GetCol3_Value @col1, @col2
FETCH NEXT FROM myCursor
INTO @col1, @col2
END
CLOSE myCursor
DEALLOCATE myCursor
nun von der Basis, möchte ich die Zeilen zurück, wie durch den ursprünglichen Cursor abgerufen, sowie die von der gespeicherten Prozedur abgerufenen Wert ausgeführt Spalte 3 der Wert zu sein.
Sprich, die Zeilen von den SQL-Cursor zurückgegeben werden:
col1 col2 col3
1 5000
2 5000
3 2500
4 2000
Und was ich brauche, ist, dass alle Spalten die Cursor nach dem Ausführen und den gespeicherten Proc und die Ergebnismenge sollte geliefert wurden:
col1 col2 col3
1 5000 APPROVED
2 5000 REJECTED
3 2500 CANCELLED
4 2000 APPROVED
Alle Ideen willkommen. Vielen Dank.
P.S. Ich weiß, dass eine Menge würde empfehlen, einfach eine JOIN-Anweisung zu verwenden, aber da die gespeicherte Prozedur ziemlich komplex ist, wäre es zu kompliziert, einen Join mit der Cursor-SQL-Anweisung zu machen.
bitte den Titel ändern, da ich eine vage Vorstellung davon, was Titel sollte diese Frage sein. – Batuta