2 Stimmen

SQL Server - nur aktualisieren, wenn die Werte unterschiedlich sind

Wie kann ich in SQL Server 2008 Felder in einer Tabelle nur dann aktualisieren, wenn ihre Werte von den Werten in der Aktualisierungsanweisung abweichen?

Zum Beispiel:

Ich habe TabelleA mit der Spalte Vorname, deren Wert "Roger Moore" mit einer eindeutigen ID von "007" ist. Jetzt rufe ich eine Aktualisierungsanweisung auf, aber sie sollte das Feld "Vorname" nur aktualisieren, wenn der Wert etwas anderes als "Roger Moore" ist.

TIA

7voto

D'Arcy Rittich Punkte 159655
update TableA 
set FirstName = 'Roger Moore' 
where ID = '007' 
    and FirstName <> 'Roger Moore'

2voto

StuartLC Punkte 99976

In der Regel lohnt es sich nicht, nach Änderungen in einem Feld zu suchen.

http://blogs.msdn.com/queryoptteam/archive/2006/07/07/659453.aspx

Möglicherweise wäre es von Vorteil, die Aktualisierung unter Vorbehalt durchzuführen.

Wenn Sie jedoch darauf bestehen, könnten Sie dies auch im Hintergrund mit einem Trigger tun und jeden der eingefügten Werte mit den aktuellen Werten vergleichen.

0voto

SqlRyan Punkte 31999

Meinen Sie eine UPDATE-Anweisung wie diese hier?

UPDATE TableA
   SET FirstName = 'New Name'
 WHERE FirstName <> 'Roger Moore'

Dabei wird Ihre eindeutige ID nicht berücksichtigt, aber ich denke, das ist es, wonach Sie suchen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X