Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Microsoft SQL Server:Gibt es eine Möglichkeit festzustellen, wann ein Datensatz erstellt wurde?

Nein.

Dafür muss eine Spalte vorhanden sein.

Stellen Sie sich vor, wie groß die Metadaten wären, wenn Sie für jeden Datensatz einen Datensatz zur Erstellung führen müssten! Möchten Sie auch Metadaten zu Ihren Metadaten behalten, damit Sie wissen, wann die Metadaten aktualisiert wurden? Die Platznutzung kann schnell eskalieren.

SQL Server speichert einige Statistiken, aber etwas so Spezifisches muss aus einem benutzerdefinierten Feld stammen.

Als Nebenbemerkung können Sie es schwieriger machen, das Datum in Ihrem erstellten Feld zu manipulieren, wenn Sie eine Nachschlagetabelle verwenden. Erstellen Sie eine Tabelle „TableName_CreateDate“ und verwenden Sie den PK aus Ihrer tatsächlichen Tabelle und einen Datumswert. Ihr Datum befindet sich an einem anderen Ort und es ist weniger wahrscheinlich, dass es geändert wird, aber Sie können trotzdem JOIN darauf, um Ihre Bestellung zu erhalten. Sie müssten einen Trigger erstellen, um dies mit neuen Werten zu aktualisieren.

Wenn Sie nur das DATUM möchten und keinen datetime-Wert benötigen, können Sie einen Schritt weiter gehen und nur eine Datumstabelle und eine Nachschlagetabelle haben, die sich daran anschließt. D.h.:

Table->Table.PK + Date.Pk -> DateTable

Dies würde viel Speicherplatz sparen, wenn Sie viele Zeilen haben (4 Bytes pro Zeile, denke ich).