Verwenden von Ausgabe, um eine Variable in einer Zusammenführungsanweisung zu setzen

8

Ich habe eine Zusammenführungs-Anweisung, die immer einen einzelnen Datensatz aktualisieren oder einfügen sollte. Ich möchte die ID dieser Anweisung in einer Variablen speichern. Es sieht so aus:

%Vor%

Das funktioniert jetzt nicht, weil Sie @int in der output-Klausel nicht auf diese Weise setzen können. Ich weiß, dass ich ein Versuchbares erstellen und INTO @temptable in der Ausgabe verwenden kann. Aber da ich weiß es ist immer ein einzelner Datensatz möchte ich die ID in einer INT-Variable haben. Ist das überhaupt möglich? Oder bin ich gezwungen, eine Tabellenvariable zu verwenden. Ich hoffe, ich vermisse nur eine gewisse Syntax.

    
Edwin Stoteler 30.05.2013, 14:22
quelle

1 Antwort

22

Nein, Sie müssen eine Tabellenvariable mit OUTPUT

verwenden

Sie können dies jedoch tun ...

%Vor%

Die "Zuweisung in UPDATE" wurde a gültige Syntax für SQL Server für eine lange Zeit. Siehe auch MERGE auf MSDN . Beide sagen das:

  

...
<set_clause>::=

     

SET
  ...
  @ variable = Ausdruck

    
gbn 30.05.2013, 14:26
quelle