我需要向现有表添加新列,以便无论何时添加新行或编辑现有行,此列都将填充事务的确切日期和时间。我尝试使用TimeStamp,但显然TimeStamp与日期时间无关
它只是一个连续数字的二进制表示 - 它唯一有利于确保一行在读取后没有变化。 (引自How to convert SQL Server's timestamp column to datetime format
非常感谢任何帮助
答案 0 :(得分:1)
听起来你需要创建一个触发器来填充/更新这个新列。请参阅以下内容:How to: Create trigger for auto update modified date with SQL Server 2008
答案 1 :(得分:0)
您必须在INSERT
和UPDATE
上为表创建触发器,并在触发器中使用
UPDATE myTable
SET myColumn = GETDATE()
你的触发器应该看起来像
CREATE TRIGGER trigger_updateTimestamp
ON myTable
AFTER INSERT, UPDATE
AS
UPDATE myTable
SET myColumn = GETDATE()
WHERE ID = 'xyz'
答案 2 :(得分:0)
试
ALTER TABLE myTable ADD CONSTRAINT [DF_myTable_myColumn] DEFAULT (getdate()) FOR [myColumn]
GO
...一个好的做法是为编辑日期添加一个额外的列,并使用触发器进行更新
CREATE TRIGGER trigger_updateMyTable
ON myTable
AFTER UPDATE
AS
IF EXISTS (SELECT * FROM INSERTED)
BEGIN
IF ΝΟΤ EXISTS (SELECT * FROM DELETED)
BEGIN
UPDATE myTable
SET myEditColumn = GETDATE()
WHERE ID IN (
SELECT
ID
FROM INSERTED
)
END
END