Ich brauche einen Weg, um einen einzelnen Wert nur innerhalb eines eingefügten Feldes zu erzwingen, genauer gesagt ein DateTime-Feld, das immer auf das aktuelle Datum/die aktuelle Uhrzeit beim Einfügen gesetzt werden sollte. Ich arbeite an einer universitären Übung und sie wollen, dass alle Einschränkungen innerhalb der DB gemacht werden, normalerweise würde ich einfach eine DEFAULT GetDate() und immer DEFAULT für Einsätze verwenden, aber die Übungsanforderungen verhindern dies. nun für eine ganze Zahl kann ich das tun (ich habe die anderen Felder weggelassen, da sie bei der Hand auf die Frage irrelevant sind):Nur aktuelles Datum/Uhrzeit bei SQL Server-Einfügung zulassen
CREATE TABLE tester(
d INTEGER not null DEFAULT 3,
CONSTRAINT chkd CHECK(d = 3)
);
aber was ich will, ist folgendes:
CREATE TABLE tester(
d DATETIME not null DEFAULT GETDATE(),
CONSTRAINT chkd CHECK(d = ????????)
);
Das erneute Iterieren von GetDate() in check() löst einen Fehler bei Einfügungen aus, da die Mikrosekunden eine Nichtübereinstimmung verursachen. Also ich denke die erste Frage ist, ist das möglich? und wenn ja (hoffe ich) wie?
Verwendung einen Auslöser füllen Sie das Feld mit der aktuellen Zeit arbeitet? –
@RyanVincent Richtig thx, nicht sicher, warum ich nicht daran gedacht habe, verwende ich Trigger anderswo und es ist wirklich einfach so. –