2016-03-30 7 views
0

Wir erstellen ein System, das Prüffelder für jede Tabelle (CreatedDate, LastUpdateDate) hat, die derzeit Felder sind.DateTime vs DateTime2

Die Werte für beide werden über den .Net-Code (Through EF) eingestellt.

Wäre es von Vorteil, sie alle in DATETIME2 zu ändern?

Und ...

Ohne Auslöser, gibt es eine Möglichkeit, dass ich diese auf Update/Insert auf dem Tisch setzen kann? Das Hinzufügen eines DEFAULT von GETDATE() zu "CreatedDate" kann für dieses Feld hilfreich sein (obwohl es immer noch mit dem .Net-Code überschrieben werden kann) ... aber was kann ich mit LastUpdateDate tun?

Antwort

0

Ok, diese Frage ist sehr beliebt. Ihre erste Teilantwort wird sein, wenn Sie mehr über Kompatibilität als Präzision besorgt sind, verwenden Sie datetime. Einige Clients unterstützen Datum, Uhrzeit oder Datetime2 nicht und erzwingen die Konvertierung in eine Zeichenfolge. Also nutze es weise. Darüber hinaus hat datetime2 eine größere Reichweite.

SQL Server datetime2 vs datetime https://technet.microsoft.com/en-us/library/bb677335.aspx http://sqlhints.com/2011/09/17/difference-between-datetime-and-datetime2-datatype/

Es tut mir leid ich nicht richtig zweiten Teil Ihrer Frage verstehen. Bitte lösche mich.

+0

Danke. Im zweiten Teil ging es darum, 'Wie kann ich CREATEDATE und LASTUPDATE festlegen, wenn die Zeile hinzugefügt oder geändert wird, ohne einen Trigger zu verwenden. – Craig

+0

Wenn dieses Problem zu mir kommt, dann löse ich das Problem vom Codeende. Ich habe ** CreatedDate, CreatedBy, ModifiedDate, ModifiedBy ** behalten, wenn ich * einen neuen Eintrag einfüge * Ich fülle die ** ersten beiden Eigenschaften ** und die zweiten beiden können ** null ** nehmen. Nachdem ich das Objekt aktualisiert oder geändert habe, aktualisiere ich ** zwei zweite Eigenschaften. ** Das ist alles – bluetoothfx

Verwandte Themen