Hallo,
ich habe eine StoredProcedure wie folgt
<blockquote>
<font face="Courier New" size="2"><b>DECLARE cr CURSOR FOR
SELECT a, b, c, d
FROM TabelleXYZ
WHERE b > irgendetwas
AND c = nochetwas
ORDER BY a, d
OPEN cr
FETCH NEXT FROM cr INTO @a, @b, @c, @d
WHILE (@@FETCH_STATUS = 0)
BEGIN
@bNeu = dbo.f1 (@b, @c, @d)
@cNeu = dbo.f2 (@bNeu, @c, @d)
@dNeu = dbo.f3 (@bNeu, @cNeu, @d)
-- gibt es hierfuer eine bessere Loesung
UPDATE TablelleXYZ
SET b = @bNeu,
c = @cNeu,
d = @dNeu
WHERE a = @a
FETCH NEXT FROM cr INTO @a, @b, @c, @d
END
CLOSE cr
DEALLOCATE cr</b></font>
</blockquote>
In der while-Schleife ist noch anderer Code mit dabei, den ich exemplarisch
entfernt habe.
Mir ist dabei wichtig eine Alternative zu finden, die den Update ersetzt.
Kann man nicht gleich eine Wertzuweisung machen, da ich eh auf den Datensatz <b>"a"</b>
stehe?
Gruss und Dank
Dietmar
ich habe eine StoredProcedure wie folgt
<blockquote>
<font face="Courier New" size="2"><b>DECLARE cr CURSOR FOR
SELECT a, b, c, d
FROM TabelleXYZ
WHERE b > irgendetwas
AND c = nochetwas
ORDER BY a, d
OPEN cr
FETCH NEXT FROM cr INTO @a, @b, @c, @d
WHILE (@@FETCH_STATUS = 0)
BEGIN
@bNeu = dbo.f1 (@b, @c, @d)
@cNeu = dbo.f2 (@bNeu, @c, @d)
@dNeu = dbo.f3 (@bNeu, @cNeu, @d)
-- gibt es hierfuer eine bessere Loesung
UPDATE TablelleXYZ
SET b = @bNeu,
c = @cNeu,
d = @dNeu
WHERE a = @a
FETCH NEXT FROM cr INTO @a, @b, @c, @d
END
CLOSE cr
DEALLOCATE cr</b></font>
</blockquote>
In der while-Schleife ist noch anderer Code mit dabei, den ich exemplarisch
entfernt habe.
Mir ist dabei wichtig eine Alternative zu finden, die den Update ersetzt.
Kann man nicht gleich eine Wertzuweisung machen, da ich eh auf den Datensatz <b>"a"</b>
stehe?
Gruss und Dank
Dietmar
Comment