CURSOR - UPDATE - Problem

08/04/2008 - 15:16 von derpendja | Report spam
Hallo,

ich lese mir eine Tabelle in den Cursor und verwende diesem um eine
andere Tabelle zeilenweise/Cursorweise upzudaten. (SQL Server 2000).
Im Prinzip sieht das Update so aus (vereinfacht):

UPDATE tab2 SET Wert = @Umsatz * (@Abzuege / 100), Zeitpunkt getdate() WHERE id = @id

wobei die drei Variablen aus der gelesenen Tabelle stammen.
Der Wert ist decimal (11,2), ebenfalls @Umsatz und @Abzuege. Das
Update funktioniert, der Zeitpunkt wird weggeschrieben, bei "Wert"
wird aber eine falsche Zahl weggeschrieben.
Ich habe das Update jetzt so umgeschrieben, dass ich es zunàchst in
einer eigenen Variable schreibe. Gebe ich die Variable aus, steht der
richtige Wert drinne, führe ich ihn mit exec() aus, steht der falsche
drinnen. Ich finde da auch keinen Zusammenhang, die Zahlen sind
gànzlich anders - also kein einfacher Faktor, der immer eingerechnet
wird.
Nehme ich jetzt den ausgegebenen Befehl und lass ihn manuell im Query
Analyzer ausfüllen, macht er es wieder richtig.

Danke für die Hilfe, ich verstehe die SQL-Welt nicht mehr...

Gruß
 

Lesen sie die antworten

#1 Christoph Muthmann
09/04/2008 - 07:40 | Warnen spam
wrote:
Hallo,

ich lese mir eine Tabelle in den Cursor und verwende diesem um eine
andere Tabelle zeilenweise/Cursorweise upzudaten. (SQL Server 2000).
Im Prinzip sieht das Update so aus (vereinfacht):

UPDATE tab2 SET Wert = @Umsatz * (@Abzuege / 100), Zeitpunkt > getdate() WHERE id = @id

wobei die drei Variablen aus der gelesenen Tabelle stammen.
Der Wert ist decimal (11,2), ebenfalls @Umsatz und @Abzuege. Das
Update funktioniert, der Zeitpunkt wird weggeschrieben, bei "Wert"
wird aber eine falsche Zahl weggeschrieben.
Ich habe das Update jetzt so umgeschrieben, dass ich es zunàchst in
einer eigenen Variable schreibe. Gebe ich die Variable aus, steht der
richtige Wert drinne, führe ich ihn mit exec() aus, steht der falsche
drinnen. Ich finde da auch keinen Zusammenhang, die Zahlen sind
gànzlich anders - also kein einfacher Faktor, der immer eingerechnet
wird.
Nehme ich jetzt den ausgegebenen Befehl und lass ihn manuell im Query
Analyzer ausfüllen, macht er es wieder richtig.

Danke für die Hilfe, ich verstehe die SQL-Welt nicht mehr...

Gruß



Hallo!
Realnamen sind hier gern gesehen.

Ich fürchte, dass Du ohne ein Code-Beispiel nicht viel sinnvollen Input
erhalten wirst. Ich tippe auf einen Fehler in Deiner Cursor-Schleife,
bezweifle aber auch die Notwendigkeit des Cursors aufgrund der bisher
gegebenen Informationen.

Einen schönen Tag noch,
Christoph
(Please post ALL replies to the newsgroup only unless indicated
otherwise)

Ähnliche fragen