2011-01-04 5 views
0

Ich habe eine Tabelle mit einer Wert-Spalte und einer Status-Spalte.Hoffentlich einfache SQL-Frage zum Erzwingen der Unveränderlichkeit einer Spalte basierend auf dem Wert einer anderen Spalte

Was ist der einfachste und effektivste Weg, um das Folgende durchzusetzen? Die Idee ist, dass Geldwerte in die Datenbank eingegeben werden und dann jemand "Final" sagt und danach muss ich keine Änderungen garantieren, da ein Abrechnungsprozess beginnt.

  1. Neue Zeilen Status = ‚Neu‘ (dh nicht anders)
  2. Wert nur aktualisiert werden, wenn Status = ‚Neu‘
  3. Der Status kann zu ‚Final‘ genau einmal geändert werden, und nach dass die ganze Zeile effektiv nur gelesen wird.

Antwort

1

Ein Trigger ist der beste Weg, um dies durchzusetzen.

+0

Wie erhalten Sie einen SQL Server-Trigger, um eine Einfügung oder ein Update zu stoppen? (Ich bin ein Neuling mit SQL) –

+0

@ Gabriel: Sie verwenden 'RAISERROR'. Siehe das Beispiel [hier] (http://msdn.microsoft.com/en-us/magazine/cc164047.aspx). – RedFilter

+0

Danke, ich schätze die Hilfe. –

Verwandte Themen