【问题标题】:Execute an INSERT, UPDATE and DELETE against a SQL Server Database Snapshot针对 SQL Server 数据库快照执行 INSERT、UPDATE 和 DELETE
【发布时间】:2015-08-12 00:33:49
【问题描述】:

根据http://blogs.msdn.com/b/sqlcat/archive/2011/10/17/updating-a-database-snapshot.aspx,我应该能够成功地对数据库快照执行插入、更新和删除操作。

思路是在创建快照之前先创建一个表的视图,然后再创建快照,并更新快照中的视图。

我已在我的 SQL Server 2014 (v12.0.2269) 上尝试过此操作,但仍然出现错误 无法更新数据库“Snapshot2015_07”,因为该数据库是只读的。

我热衷于这项工作的原因是财务需要在特定日期冻结,但如果在快照中发现错误,则需要更新。

最近有人成功了吗? 我知道有像 AutoAudit 这样的替代方法,但是要在具有 500 万多行的多个表的数据库上实现 1-2 次更新/删除需要做很多工作

【问题讨论】:

  • 快照可能不是您需要的。一个数据库一次只能有一个快照,并且该快照不可移植。因为页面在原始数据库中更新之前被复制到快照中,所以保留数据库快照会对性能造成重大影响。也许您应该考虑备份甚至分离 .MDF 并将其用作您的冻结时间。
  • 视图必须指定数据库名称(这是原始数据库名称,而不是快照数据库名称),以及模式和表名称。您创建的视图是否指定了完全限定对象名称的这三个部分?
  • DMason,就是这样!谢谢大家

标签: sql sql-server database snapshot


【解决方案1】:

视图必须指定数据库名称(这是原始数据库名称,而不是快照数据库名称),以及架构和表名称。确保您创建的视图指定了完全限定对象名称的这三个部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多