Ich arbeite mit einer Benutzertabelle und möchte ein "Ende der Probezeit" setzen. Grundsätzlich hat jeder neue Benutzer zwei volle Monate ab dem Zeitpunkt seiner Teilnahme an der Probezeit. Ich habe gesehen, dass ich eine Formel in die Spalte meiner Benutzertabelle schreiben kann, aber ich frage mich, ob ich ein Skript haben sollte, das dies aktualisiert, oder ob dies ein akzeptabler Zeitpunkt ist, um berechnete Spalten zu verwenden. Ich greife auf diese Tabelle für verschiedene Dinge zu und aktualisiere gelegentlich die Reihe der Benutzer basierend auf Leistungsmeilensteinleistungen. Das Bewerbungsdatum wird sich niemals ändern/aktualisiert werden.Best Practices für berechnete Spalte in SQL Server
Meine Frage ist: Ist die Berechnung der Spalte eine gute Übung in dieser Situation oder wird sie jedes Mal neu berechnet, wenn ich diese Zeile aktualisiere (obwohl ich das App-Datum nicht aktualisieren werde)? Ich möchte nicht mehr Overhead erzeugen, wenn ich die Zeile in Zukunft aktualisiere.
Formel I bin für die Bewährungs Enddatum in der Spaltendefinition verwendet:
(dateadd(day,(-1),dateadd(month,(3),dateadd(day,(1)-datepart(day,[APP_DT]),[APP_DT]))))
Sind „join Datum“ und „Anmeldedatum (bemerke ich einen etwas weniger convulted Ansatz verwendet, um das Ende des Monats für zwei Monate zu bekommen.) " das gleiche? Möchten Sie das Enddatum der Bewährung später unabhängig von den anderen Datumsspalten aktualisieren? –
Wird sich die 2-Monats-Politik jemals ändern? Könnte es in der Zukunft 1 oder 3 (oder ein anderer Wert) werden? –
Ja, JoinDate/AppDate dasselbe (sorry, ich benutze sie austauschbar). Ich werde nie das Datum überschreiben, aber zu marc_s Punkt, da es nicht aktualisiert wird, werde ich das als Teil des Einfügeskriptes einschließen. Ich muss das auch indexieren, und ohne das Dauerhafte wird das nicht so gut funktionieren. Tausend Dank für die blitzschnelle Antwort! – Brian