Gibt es eine Möglichkeit, den Standardwert einer Spalte DateTime.Now
in SQL Server festzulegen?
Beispiel:
table Event
Id int (auto-increment) not null
Description nvarchar(50) not null
Date datetime not null
Die Linie:
Insert into Event(Description) values('teste');
sollte eine Zeile einfügen und der Datumswert sollte das aktuelle Datum sein.
sql
sql-server
dcarneiro
quelle
quelle
Antworten:
Fügen Sie eine Standardbedingung mit der Funktion GETDATE () als Wert hinzu.
ALTER TABLE myTable ADD CONSTRAINT CONSTRAINT_NAME DEFAULT GETDATE() FOR myColumn
quelle
CONSTRAINT
Schlüsselwort zu fehlen . Es sollte sein... ADD CONSTRAINT MY_CONSTRAINT_NAME ...
GETDATE()
uns die UTC-Zeit?CREATE TABLE Orders( O_Id int NOT NULL, OrderNo int NOT NULL, P_Id int, OrderDate date DEFAULT GETDATE() // you can set default constraints while creating the table )
quelle
[...]OrderDate DATE CONSTRAINT DF_Orders_date DEFAULT GETDATE()[...]
Sie können verwenden:
Insert into Event(Description,Date) values('teste', GETDATE());
Sie können Ihre Tabelle auch so ändern, dass 'Datum' den Standardwert "GETDATE ()" hat.
quelle
Wählen Sie Tabellenspaltenname aus, bei dem Sie den Standardwert für das aktuelle Datum erhalten möchten
ALTER TABLE [dbo].[Table_Name] ADD CONSTRAINT [Constraint_Name] DEFAULT (getdate()) FOR [Column_Name]
Tabellenabfrage ändern
Alter TABLE [dbo].[Table_Name]( [PDate] [datetime] Default GetDate())
quelle
Ich bin auch auf dieses Bedürfnis für mein Datenbankprojekt gestoßen. Ich habe beschlossen, meine Erkenntnisse hier zu teilen.
1) Es gibt keine Möglichkeit zu einem NOT NULL-Feld ohne Standard, wenn bereits Daten vorhanden sind ( Kann ich eine Nicht-Null-Spalte ohne DEFAULT-Wert hinzufügen ) ?
2) Dieses Thema wurde lange angesprochen. Hier ist eine Frage aus dem Jahr 2008 ( Hinzufügen einer Spalte mit einem Standardwert zu einer vorhandenen Tabelle in SQL Server )
3) Die DEFAULT-Einschränkung wird verwendet, um einen Standardwert für eine Spalte bereitzustellen. Der Standardwert wird allen neuen Datensätzen hinzugefügt, wenn kein anderer Wert angegeben ist. ( https://www.w3schools.com/sql/sql_default.asp )
4) Das Visual Studio-Datenbankprojekt, das ich für die Entwicklung verwende, ist wirklich gut darin, Änderungsskripte für Sie zu generieren. Dies ist das Änderungsskript, das für meine DB-Heraufstufung erstellt wurde:
GO PRINT N'Altering [dbo].[PROD_WHSE_ACTUAL]...'; GO ALTER TABLE [dbo].[PROD_WHSE_ACTUAL] ADD [DATE] DATE DEFAULT getdate() NOT NULL;
- -
Hier sind die Schritte, die ich unternommen habe, um meine Datenbank mit Visual Studio für die Entwicklung zu aktualisieren.
1) Standardwert hinzufügen (Visual Studio SSDT: DB-Projekt: Tabellen-Designer)
2) Verwenden Sie das Schema-Vergleichstool, um das Änderungsskript zu generieren.
3) Zeigen Sie die Daten an, bevor Sie die Änderung anwenden.
4) Zeigen Sie die Daten an, nachdem Sie die Änderung übernommen haben.
quelle
Um das aktuelle Datum als Standard für eine Datumsspalte zu verwenden, müssen Sie:
1- offener Tischdesigner
2- Wählen Sie die Spalte aus
3- Gehen Sie zu den Spalteneigenschaften
4- Setzen Sie den Wert Standardwert oder Bindungseigentum an ( getdate () )
quelle
Die Syntax zur Tabellenerstellung kann wie folgt aussehen:
Create table api_key(api_key_id INT NOT NULL IDENTITY(1,1) PRIMARY KEY, date_added date DEFAULT GetDate());
Die Syntax der Einfügeabfrage kann wie folgt lauten:
Insert into api_key values(GETDATE());
quelle
Klicken Sie mit der rechten Maustaste auf die Tabelle und klicken Sie auf Design. Klicken Sie dann auf die Spalte, für die Sie den Standardwert festlegen möchten.
Setzen Sie dann am Ende der Seite in den Spalteneigenschaften den Standardwert oder die Bindung auf: 'getdate ()'
quelle