Tsql 每次更新行时更新列的值
我正在使用SQL Server 2012。我需要跟踪表上更新的所有行(作为任何操作的一部分)Tsql 每次更新行时更新列的值,tsql,sql-server-2012,Tsql,Sql Server 2012,我正在使用SQL Server 2012。我需要跟踪表上更新的所有行(作为任何操作的一部分) 我想向要跟踪的表中添加一个新列(列名称:“LastUpdated”,类型为Datetime)。每次对该行进行更新时,我都要更新LastUpdated值。有没有具体的方法来完成这项任务 我们实施了一个类似于以下的系统: 将数据类型为datetime的新列添加到表LastUpdateDate 如果需要,请添加另一列,其数据类型为varchar(100)或您需要的任何长度 这将存储日期/时间以及执行更新的
我想向要跟踪的表中添加一个新列(列名称:“LastUpdated”,类型为Datetime)。每次对该行进行更新时,我都要更新LastUpdated值。有没有具体的方法来完成这项任务 我们实施了一个类似于以下的系统:
- 将数据类型为datetime的新列添加到表
LastUpdateDate
- 如果需要,请添加另一列,其数据类型为
或您需要的任何长度varchar(100)
update yourtable
set yourCol = 'newValue',
LastUpdatedDate = getdate(),
LastUpdatedBy = 'yourUserIdentifier'
我们实施了一个类似于以下的系统:
- 将数据类型为datetime的新列添加到表
LastUpdateDate
- 如果需要,请添加另一列,其数据类型为
或您需要的任何长度varchar(100)
update yourtable
set yourCol = 'newValue',
LastUpdatedDate = getdate(),
LastUpdatedBy = 'yourUserIdentifier'
您可能需要考虑创建一个触发器,以便在更新时触发
Create TRIGGER Trigger_Name ON Table_Name
FOR update
AS
BEGIN
// update lastupdated column of updated record with current date and or time
END
头韵地说,在更新其他字段时,您可以只传递lastupdated的新值,您可能希望创建一个触发器来触发更新
Create TRIGGER Trigger_Name ON Table_Name
FOR update
AS
BEGIN
// update lastupdated column of updated record with current date and or time
END
以头韵的方式,在更新其他字段时,只需传递lastupdated的新值即可您可以创建一个触发器。像这样:
CREATE TRIGGER dbo.Table1_Updated
ON dbo.Table1
FOR UPDATE /* Fire this trigger when a row is UPDATEd */
AS BEGIN
UPDATE dbo.Table1 SET dbo.Table1.LastUpdated = GETDATE()
FROM INSERTED
WHERE inserted.id=Table1.id
END
但是,此触发器不会存储已更新的内容。还要记住,如果有两个人更新它,您将只知道最近更新的日期(不是所有更新)
要保留所有更改的历史记录,您可能需要创建一个审核表(与现有表的结构几乎相同),并使用触发器将更新前的数据复制到审核表中。
这篇文章讨论了一种可靠的方法:您可以创建一个触发器。像这样:
CREATE TRIGGER dbo.Table1_Updated
ON dbo.Table1
FOR UPDATE /* Fire this trigger when a row is UPDATEd */
AS BEGIN
UPDATE dbo.Table1 SET dbo.Table1.LastUpdated = GETDATE()
FROM INSERTED
WHERE inserted.id=Table1.id
END
但是,此触发器不会存储已更新的内容。还要记住,如果有两个人更新它,您将只知道最近更新的日期(不是所有更新)
要保留所有更改的历史记录,您可能需要创建一个审核表(与现有表的结构几乎相同),并使用触发器将更新前的数据复制到审核表中。
这篇文章讨论了一种可靠的方法:你看过触发器了吗?你看过触发器了吗?使用本地日期/时间时要非常小心。政府喜欢来回调整,通常一年两次调整一小时。这可能导致一些有趣的问题。使用本地日期/时间时要非常小心。政府喜欢来回调整,通常一年两次调整一小时。这会引起一些有趣的问题。