gpt4 book ai didi

sql-server - 如何在 SQL Server 表中添加 “last modified” 和 "created"列?

转载 作者:行者123 更新时间:2023-12-01 19:09:57 24 4
gpt4 key购买 nike

我正在为 SQL Server 2012 数据库设计一个新的数据库架构。

每个表应该有两个额外的列,名为 modifiedcreated一旦插入或更新行,它应该自动更改。

我不知道到达那里的最佳方式。

我认为触发器是处理它的最佳方式。

我试图找到带有触发器的示例..但是我发现教程在另一个表中插入数据等。

我认为这是一个很常见的情况,但我还没有找到答案。

最佳答案

created 列很简单 - 只是一个 DATETIME2(3) 列,其默认约束在插入新行时设置:

Created DATETIME2(3) 
CONSTRAINT DF_YourTable_Created DEFAULT (SYSDATETIME())

因此,当您在 YourTable 中插入一行并且没有为 Created 指定值时,它将被设置为当前日期和时间。

修改的需要做更多的工作,因为您需要为AFTER UPDATE情况编写一个触发器并更新它 - 您不能以声明方式告诉 SQL Server为你做这个......

Modified DATETIME2(3)

然后

CREATE TRIGGER updateModified
ON dbo.YourTable
AFTER UPDATE
AS
UPDATE dbo.YourTable
SET modified = SYSDATETIME()
FROM Inserted i
WHERE dbo.YourTable.PrimaryKey = i.PrimaryKey

您需要加入 Inserted 伪表,该表包含使用该表的主键更新的所有行 .

您必须为要在其中包含modified列的每个表创建此AFTER UPDATE触发器。

关于sql-server - 如何在 SQL Server 表中添加 “last modified” 和 "created"列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31634918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com