Ich versuche, ein Update durchzuführen und eine Auswahl ... im Grunde Update basierend auf einem Index, und wählen Sie dann die Zeile ID, die aktualisiert wurde.UPDATE OUTPUT in eine Variable
Dies ist einfach die OUTPUT-Klausel:
UPDATE Foo
SET Bar = 1
OUTPUT INSERTED.Id
WHERE Baz = 2
Aber jetzt, wie bekomme ich diese in eine Variable?
DECLARE @id INT
Diese drei funktionieren nicht:
UPDATE Foo
SET Bar = 1
OUTPUT @id = INSERTED.Id
WHERE Baz = 2
SET @id =
(UPDATE Foo
SET Bar = 1
OUTPUT INSERTED.Id
WHERE Baz = 2)
SET @id =
(SELECT Id FROM (UPDATE Foo
SET Bar = 1
OUTPUT INSERTED.Id Id
WHERE Baz = 2) z)
Das letzte eingeschlossen, weil es mich vorübergehend erregt hatte, als alle roten squigglies in Management Studio ging. Ach, ich diesen Fehler:
A nested INSERT, UPDATE, DELETE, or MERGE statement is not allowed in a SELECT statement that is not the immediate source of rows for an INSERT statement.
Ich habe das noch nie gedacht. Sehr schön! –
Danke Cory, ich fragte mich, ob das Set-Schlüsselwort innerhalb des Updates in der Lage sein wird, eine Variable zu setzen, und es hat funktioniert! –
funktioniert dies mit 'insert' für eine einzelne betroffene Zeile? – rahoolm