SQL Server-更新表历史记录

CM2K

考虑以下来自#myTempTwo的数据示例

sno     |   name        |budget |NameTrim   |TravelCost|    Expense
1       |Local Travel   |123    |Travel     |246       |    NULL
2       |Global Travel  |123    |Travel     |246       |    NULL
3       |Local Expense  |12     |Expense    |NULL      |    24
4       |Curent Expense |12     |Expense    |NULL      |    24

场景TravelCostExpensenull为空的情况下,使用值更新。假设1表示费用,2表示travelCost。

现在说更新:

update #myTempTwo 
 set TravelCost = '2' where TravelCost is null
 update #myTempTwo 
 set Expense = '1' where Expense is null

这将产生:

    sno     |   name        |budget |NameTrim   |TravelCost|    Expense
    1       |Local Travel   |123    |Travel     |246       |    1
    2       |Global Travel  |123    |Travel     |246       |    1
    3       |Local Expense  |12     |Expense    |2         |    24
    4       |Curent Expense |12     |Expense    |2         |    24

我能以某种方式查看原始数据吗(从运行更新之前开始,而没有将其保存在其他表中。我正在寻找某些“撤消”或“查看历史记录”或某些“临时快照”吗?(使用SQL Server 2012)

如果是,我该怎么办?

乔基·纳库里(Giorgi Nakeuri)

这是触发器和历史记录表的示例:

CREATE TABLE OriginaTable(ID INT IDENTITY, Price MONEY)
GO

CREATE TABLE HistoryTable(ID INT IDENTITY, OriginalID INT, Price MONEY, CreatedDate DATETIME)
GO

CREATE TRIGGER trOriginaTable ON OriginaTable
FOR UPDATE
AS
BEGIN
  IF UPDATE(Price)
  BEGIN
        INSERT INTO dbo.HistoryTable
                ( OriginalID, Price, CreatedDate )
                SELECT ID, Price, GETDATE() FROM Deleted
  END
END
GO

INSERT INTO OriginaTable VALUES(NULL)
GO

UPDATE dbo.OriginaTable SET Price = 100 WHERE ID = 1
UPDATE dbo.OriginaTable SET Price = 10 WHERE ID = 1
UPDATE dbo.OriginaTable SET Price = 200 WHERE ID = 1

SELECT * FROM dbo.HistoryTable

输出:

ID  OriginalID  Price   CreatedDate
1   1           NULL    2015-11-05 18:46:49.823
2   1           100.00  2015-11-05 18:46:49.830
3   1           10.00   2015-11-05 18:46:49.833

如您所见,历史记录会保存所有旧值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server 2012:是否可以免除某些列以触发历史记录表更新?

来自分类Dev

SQL Server中的历史记录表

来自分类Dev

分区历史记录SQL Server

来自分类Dev

分区历史记录SQL Server

来自分类Dev

SQL Server Management Studio-命令历史记录

来自分类Dev

SQL Server Management Studio-命令历史记录

来自分类Dev

字段历史记录跟踪-SQL Server

来自分类Dev

SQL SERVER中的价格历史记录日志查询

来自分类Dev

Oracle SQL表历史记录

来自分类Dev

SQL查询从历史记录表确定期间

来自分类Dev

历史记录表中的SQL LEFT JOIN

来自分类Dev

SQL Server维护计划历史记录检查成功或失败

来自分类Dev

SQL Server代理作业执行历史记录日志是否保存到磁盘?

来自分类Dev

SQL Server:JOIN子查询(从历史记录中选择数据)

来自分类Dev

获取特定数据库的SQL Server执行的查询历史记录

来自分类Dev

SQL Server维护计划历史记录检查成功或失败

来自分类Dev

Oracle SQL-查找历史记录表中列更改的最新数据

来自分类Dev

如何复制嵌套的SQL表(实现更改历史记录)

来自分类Dev

Oracle SQL-查找历史记录表中列更改的最新数据

来自分类Dev

Oracle SQL Developer中的旧SQL历史记录

来自分类Dev

SQL查询以显示支出历史记录

来自分类Dev

SQL清除历史记录重复的中间值

来自分类Dev

PHP MYADMIN SQL备份日志历史记录

来自分类Dev

SQL查询链接表,从一个表中返回最早的历史记录以及相关的结果

来自分类Dev

在MySQL表中排序更新历史记录

来自分类Dev

Webpack-dev-server历史记录ApiFallback重写子域

来自分类Dev

用于跟踪更改历史记录的SQL触发器-ORACLE DB

来自分类Dev

SQL查询-获取具有时间段的历史记录数据

来自分类Dev

如何获取CLPPLUS SQL命令的所有历史记录?

Related 相关文章

  1. 1

    SQL Server 2012:是否可以免除某些列以触发历史记录表更新?

  2. 2

    SQL Server中的历史记录表

  3. 3

    分区历史记录SQL Server

  4. 4

    分区历史记录SQL Server

  5. 5

    SQL Server Management Studio-命令历史记录

  6. 6

    SQL Server Management Studio-命令历史记录

  7. 7

    字段历史记录跟踪-SQL Server

  8. 8

    SQL SERVER中的价格历史记录日志查询

  9. 9

    Oracle SQL表历史记录

  10. 10

    SQL查询从历史记录表确定期间

  11. 11

    历史记录表中的SQL LEFT JOIN

  12. 12

    SQL Server维护计划历史记录检查成功或失败

  13. 13

    SQL Server代理作业执行历史记录日志是否保存到磁盘?

  14. 14

    SQL Server:JOIN子查询(从历史记录中选择数据)

  15. 15

    获取特定数据库的SQL Server执行的查询历史记录

  16. 16

    SQL Server维护计划历史记录检查成功或失败

  17. 17

    Oracle SQL-查找历史记录表中列更改的最新数据

  18. 18

    如何复制嵌套的SQL表(实现更改历史记录)

  19. 19

    Oracle SQL-查找历史记录表中列更改的最新数据

  20. 20

    Oracle SQL Developer中的旧SQL历史记录

  21. 21

    SQL查询以显示支出历史记录

  22. 22

    SQL清除历史记录重复的中间值

  23. 23

    PHP MYADMIN SQL备份日志历史记录

  24. 24

    SQL查询链接表,从一个表中返回最早的历史记录以及相关的结果

  25. 25

    在MySQL表中排序更新历史记录

  26. 26

    Webpack-dev-server历史记录ApiFallback重写子域

  27. 27

    用于跟踪更改历史记录的SQL触发器-ORACLE DB

  28. 28

    SQL查询-获取具有时间段的历史记录数据

  29. 29

    如何获取CLPPLUS SQL命令的所有历史记录?

热门标签

归档