Einzelnen Beitrag anzeigen

quso

Registriert seit: 1. Okt 2005
Ort: Kleve
18 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Stored Procedure: Ergebnismenge dynamisch updaten

  Alt 23. Dez 2006, 19:49
Also von gaaanz von vorne:

U.a. über eine Web-Maske werden Datensätze in die DB geschrieben, die mittels einer Software verwaltet werden. (Es sind beides Fremdprodukte!)

Um diese neuen Datensätze automatisch zu klassizieren (bzw. weitere Daten anzuhängen), soll die SP jeden Datensatz, welcher noch nicht klassifiziert ist, "bearbeiten". In einem View sind bereits alle zu bearbeiten Datensätze gefiltert und die Werte, welche in die "Haupttabelle" geschrieben werden sollen, angehängt. Ich muss also diese Werte eigentlich nur noch in die "Haupttabelle" zurückschreiben lassen.

Soviel zu Umgebung.

Das "eigentlich nur noch" stellt sich aber als schwierig heraus.

Den Ablauf stelle ich mir so vor:

- Abfrage des Views
- Schleife: Mit jedem erhalten Datensatz die "Haupttabelle" aktualisieren.

Mein erster Ansatz sieht so aus:
Haupttabelle, bevor die SP ausgeführt wurde:

A | B |
-----------
1 | U |
2 | V |
3 | W |
4 | X |
5 | Y |
6 | Z |
....

Die SP:
Zitat:
SQL-Code:
While (Select A,B from Tabelle where Bedingung) do
begin
Update Tabelle set A = (Select X from View where B)
...
end
Haupttabelle, nachdem die SP ausgeführt ist:

A | B |
-----------
1 | A |
2 | B |
3 | C |
4 | D |
5 | F |
6 | G |
...

[Um Missverständnissen vorzubeugen: Nicht alle Datensätze müssen geändert werden! ]

Mein Problem ist die Schleife. In PHP würde ich mit "foreach" die Ergebnismenge durchgehen. Wie macht man dies im MSSQL-Server?

Ach ja:
Zitat:
Nochmal:
Zitat:
Versuchs doch mal.
evtl. mit vereinfachten Beispieldaten ...
Ich habe es probiert, aber leider besteht das Script den Syntax-Check im Enterprise Manager nicht. Selbst verständlich mit richtigen Tabellen-, Spaltennamen. Davon abgesehen, sehe ich nicht, wie dein Beispiel das Problem lösen soll. Oder bin ich nur zu blöd
  Mit Zitat antworten Zitat