我有这个特定的问题。我正在运行 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]
我明白了
将“ValidFrom”列为“2017-08-09 11:18:30”。为什么我没有按预期获得该列的默认值“1900-01-01 00:00:00”?
插入时我的 Sysdatetime() 是 '2017-08-09 13:18:30'
我试图将 DEFAULT 设置为 Sysdatetime() 以获取当前日期和时间,但这也不起作用。似乎如果我将 DEFAULT 设置为任何我总是得到相同的结果。
我感谢每一个答案。