【问题标题】:Find Differences in a Database After an Insert插入后查找数据库中的差异
【发布时间】:2011-12-13 18:16:05
【问题描述】:

我有一个与数据库交互的程序。当程序与数据库交互时,一切都很好。但是,我需要向修改数据库的程序添加功能。

我继承的数据库。没有任何表或列具有逻辑名称。即使这些名字确实意味着什么,关于它们的文档也早已丢失。我正在尝试将一个项目插入/删除到数据库中,而且它似乎每次都会损坏它。

我想做的是以某种方式保存插入/删除之前的数据库状态,插入/删除到数据库中,然后在插入/删除之后保存数据库的状态。通过这样做,我可以准确地看到正在更新哪些表,以及更新了哪些值。然后我可以诚实地尝试修改应用程序以使用数据库。

是否有任何工具可以做到这一点?这甚至可能吗?还有其他方法可以实现我的目标吗?

【问题讨论】:

  • 您使用的是哪个版本的 SQL Server?企业?
  • 您是否尝试过使用 SQL Profiler 设置跟踪?似乎这将是第一个开始的地方。在应用程序中执行操作并跟踪发生的情况。

标签: sql-server database sql-server-2008 sql-server-2008-r2


【解决方案1】:

我的第一个猜测是触发器在您要插入的表上。

您应该运行分析器并查看到底发生了什么。

【讨论】:

    【解决方案2】:

    您可以在修改数据库之前使用 Create&Insert 对受影响的每个表进行备份(如果您只需要短期备份,则可以使用临时表或表变量)。然后你必须做一个比较之前和之后的查询。

    如果您的记录集足够小,并且您手动执行此操作,则复制并粘贴到 Excel 可能就足够了。

    【讨论】:

      【解决方案3】:

      我同意其他人的观点,即您应该从 SQL Profiler 开始。如果您正确设置标准,您应该很容易看到在插入和删除命令期间执行了哪些以损坏结尾的操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-19
        • 2018-02-26
        • 1970-01-01
        • 2017-12-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多