Использование Microsoft SQL Server Я хочу, чтобы столбец имел текущую дату и время UTC по умолчанию. Когда строка вставлена и значение не указано для этого столбца, оно должно по умолчанию указывать дату UTC на сервере.SQL Server GetUTCDate недействителен по умолчанию
создать таблицу:
CREATE TABLE [dbo].[Status]
(
[ProcessNam] [varchar](30) NOT NULL,
[LastCheckIn] [datetime2] NOT NULL DEFAULT GETUTCDATE(),
[Failures] [tinyint] NOT NULL DEFAULT ((0)),
CONSTRAINT [PK_AST_PING]
PRIMARY KEY CLUSTERED ([ProcessNam] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Но когда я использую:
INSERT INTO dbo.Status VALUES ('TEST', '', '')
колонна заканчивается, содержащая 1900-01-01 00:00:00.000000
Если я использую
SELECT GETUTCDATE()
Th Правильная временная метка возвращается.
'' '' отличается от 'NULL' – Lamak
Вы предоставляете значение в' INSERT' - пустую строку - поэтому значение по умолчанию не используется. Вы должны ** явно указать ** те столбцы, в которые вы хотите вставить значения, - и если вы не хотите вставлять что-либо в 'LastCheckIn', тогда не включайте его в список столбцов, в которые вы вставляете значения, в этом случае вместо этого будет использоваться значение по умолчанию –