roker002
Commander
- Registriert
- Dez. 2007
- Beiträge
- 2.075
Ich habe ein kleines Problem! ich versuche von eine DB in die andere die Tabelleninhalte zu übertragen!
Ich dachte man kann im C# mit managed Code das machen aber wenn ich im SQL Server das selbst mache geht es viel schneller!
Naja auf jeden fall mein Problem ist:
Ich fetche eine Tabelle mit Cursor. Ja da macht der SQL server kein problem.
Das ist eine echtabfrage mit Echtdaten. Die Innere abfrage mit dem Select id liefert einen eideutigen ergebnis egela welcher p das jetzt ist, da p in der gesamte aufstellung der tabelle immer nur 1x vorkommt.
OK es geht weiter!
jetzt das Problem! ich Fetche die Daten aus der Abfrage oben in die Lokale Variablen. Die sind oben erstellt und sind alle vorhanden.
Damit ich sehe welche Daten jetzt durchgefetcht werden habe ich kleinen Select eingebaut. Beim Preis habe ich immer die richtige Werte. Jetzt gehts los!
Bei monatsid überspringt er den ersten Werte und liefert direkt den zweiten! Ich habe insgesamt bei der Abfrage 4 Elemente.
Also erscheint bei mir die Reihenfolge
Der sollte aber
Fetchen
Woran liegt es?
Ich dachte man kann im C# mit managed Code das machen aber wenn ich im SQL Server das selbst mache geht es viel schneller!
Naja auf jeden fall mein Problem ist:
Ich fetche eine Tabelle mit Cursor. Ja da macht der SQL server kein problem.
Code:
DECLARE monate CURSOR FOR
(SELECT * FROM [dbo].[vorlage_monat] WHERE vorlage = (SELECT id FROM .[dbo].[vorlagen] where p = 17) AND pn != 0)
Das ist eine echtabfrage mit Echtdaten. Die Innere abfrage mit dem Select id liefert einen eideutigen ergebnis egela welcher p das jetzt ist, da p in der gesamte aufstellung der tabelle immer nur 1x vorkommt.
OK es geht weiter!
Code:
OPEN monate
-- Perform the first fetch.
FETCH NEXT FROM monate
-- Check @@FETCH_STATUS to see if there are any more rows to fetch.
WHILE @@FETCH_STATUS = 0
BEGIN
-- This is executed as long as the previous fetch succeeds.
FETCH NEXT FROM monate
INTO @monatid, @vorlage, @pn, @lp
SET @preis =
(SELECT ... aus @pn);
select @preis AS Preis, @monatid AS Monat, @vorlage AS R, @pn AS PN, @lp AS LP
INSERT INTO ...
END
CLOSE monate
DEALLOCATE monate
ROLLBACK TRANSACTION
ROLLBACK TRANS habe ich gemacht damit die daten nicht in Tabelle geschrieben werden, da ich diese nur zu testzwecken benutze und später ehe per hand löschen muss weil es immer noch einen Fehler gibt!
jetzt das Problem! ich Fetche die Daten aus der Abfrage oben in die Lokale Variablen. Die sind oben erstellt und sind alle vorhanden.
Damit ich sehe welche Daten jetzt durchgefetcht werden habe ich kleinen Select eingebaut. Beim Preis habe ich immer die richtige Werte. Jetzt gehts los!
Bei monatsid überspringt er den ersten Werte und liefert direkt den zweiten! Ich habe insgesamt bei der Abfrage 4 Elemente.
Also erscheint bei mir die Reihenfolge
Code:
2
3
4
4
Der sollte aber
Code:
1
2
3
4
Woran liegt es?