当我插入一条记录时,dateCreated
并且 dateModified 被设置为默认值
约会时间。当我更新/修改
记录、日期修改和日期创建
保持原样?我该怎么办?
仅当INSERTing 时使用列默认值,而不是UPDATE。如果您不提供列或在 INSERT 中发出 DEFAULT 关键字,则 INSERT 命令将使用默认值。
INSERT INTO Customer (col1, col2)
VALUES (..,..) ---get default for dateCreated & dateModified
INSERT INTO Customer (col1, col2,dateCreated)
VALUES (..,..,DEFAULT) ---get default for dateCreated & dateModified
INSERT INTO Customer (col1, col2,dateCreated,dateModified)
VALUES (..,..,DEFAULT,DEFAULT) ---get default for dateCreated & dateModified
INSERT INTO Customer (col1, col2,dateCreated,dateModified)
VALUES (..,..,'1/1/2010',DEFAULT) ---only get default for dateModified
INSERT INTO Customer (col1, col2,dateCreated,)
VALUES (..,..,'1/1/2010') ---only get default for dateModified
INSERT INTO Customer (col1, col2,dateCreated,dateModified)
VALUES (..,..,'1/1/2010','1/2/2010') ---no defaults for dateCreated & dateModifie
我喜欢用一个局部变量来设置那个程序的顶部:
DECLARE @RunDate datetime
SET @RunDate=GETDATE()
然后我在过程中使用它,因此所有更改(即使在多个表上)都具有完全相同的毫秒日期。我也更喜欢 dateModified 列允许空值并且没有默认值,当它被插入时,它已创建未修改,我将在实际修改时设置 dateModified。
然后使用:
UPDATE Customer
SET importantColumn=
,dateModified = @RunDate
WHERE ...
UPDATE CustomerPrice
SET importantColumn=
,dateModified = @RunDate
WHERE ...