У меня есть эта конкретная проблема. Я использую Microsoft SQL Server Management Studio (13.0.16000.28) и хочу создать темпоральную таблицу Price. Я хочу установить для столбца «ValidFrom» значение по умолчанию, например «1900-01-01 00:00:00». Код, который я запускаю,
CREATE TABLE [DWH_STORE].[dbo].[Price] (
ID int,
ProdName nvarchar(40),
Price int,
ValidFrom datetime2(0) GENERATED ALWAYS AS ROW START CONSTRAINT DF_ValidFrom DEFAULT '1900-01-01 00:00:00' NOT NULL,
ValidTo datetime2(0) GENERATED ALWAYS AS ROW END NOT NULL,
PERIOD FOR SYSTEM_TIME ( ValidFrom, ValidTo),
CONSTRAINT PK_ID_ProdName PRIMARY KEY (ID, ProdName)
) WITH ( SYSTEM_VERSIONING = ON (HISTORY_TABLE = [dbo].[PriceHistory]));
Однако, когда я вставляю данные в свою таблицу
INSERT INTO [DWH_STORE].[dbo].[Price] (ID, ProdName, Price)
VALUES (12, 'Banana', 1)`
SELECT * FROM [DWH_STORE].[dbo].[Price]
я получил
со столбцом «Действительно от» как «2017-08-09 11:18:30». Почему я не получаю значение по умолчанию «1900-01-01 00:00:00» для этого столбца, как ожидалось?
Мой Sysdatetime() во время вставки был «2017-08-09 13:18:30».
Я попытался установить DEFAULT как Sysdatetime(), чтобы получить текущую дату и время, и это тоже не работает. Кажется, что если я устанавливаю DEFAULT на что угодно, я всегда получаю один и тот же результат.
Я ценю каждый ответ.