SQL-server: update top(1) - Schleife

Habe ich über andere Einträge und so wie es aussieht werde ich brauchen, einen cursor? Ich bin relativ neu, aber ich bin schwingen hoch mit dieser. Jede Beratung oder Hilfe ist willkommen.

UPDATE top (1) dbo.table
SET [Status] = 1
WHERE [OrderId] = '1337' and [Status] = 0;
GO               

Wenn ein Datensatz hat eine OrderID von 1337 und den status 0, ich will, dass es geändert werden, um eine 1, aber dies muss durchgeführt werden, ein zu einer Zeit.

Bearbeiten: ich möchte es Durchlaufen, bis es keine [Status] = 0

  • Was ist das problem mit der Abfrage?
  • Was meinst du mit " ein zu einer Zeit? Können Sie ein Beispiel geben?
  • Hast du einen Primary key in Ihrer Tabelle.
  • Können Sie erklären, warum Sie benötigen, aktualisieren Sie Datensätze nacheinander?
  • Ich habe einen Primärschlüssel, wird der Datensatz eindeutig.Die Abfrage funktioniert einwandfrei, aber ich möchte es in eine Schleife geht, bis es nicht [Status] = 0
  • Aber warum muss dieses getan werden, eine Zeile zu einem Zeitpunkt?
  • es ist ein separater Prozess, hat diese Einschränkung
  • Eine defekte update-trigger?
  • Bitte erläutern Sie auf die "eigenen Prozess". Sie möchten zu versuchen und zu vermeiden RBAR (Zeile durch quälende Zeile) - Funktionalität.
  • Sie können fügen Sie einen OUTPUT - Klausel zu einer UPDATE - Anweisung. Wenn das problem gelöst werden kann, indem die "eigenen Prozess" mit einer Liste der aktualisierten Zeilen, das kann die Antwort sein.

InformationsquelleAutor Super Markio | 2013-05-28
Schreibe einen Kommentar