【问题标题】:Visual Studio Data Comparison with less columns列较少的 Visual Studio 数据比较
【发布时间】:2015-06-23 11:27:09
【问题描述】:

我的项目目前有一个数据库,其中包含多个表,其中最重要的一个具有非常大的条目的二进制列(代表序列化的 C# 对象)。生产数据库中有大量条目,在调试时,通常需要将这些条目拉到本地开发数据库中(因为远程调试似乎不起作用,这是一个单独的问题)。

如果我尝试将此表上的本地数据库和生产数据库与所有列进行比较,比较可能需要长达一个小时,或者最终会超时,但这在过去一直有效,并允许我下载条目并进行调试他们成功了。如果我在除二进制数据列之外的所有表列上进行比较,则比较几乎是即时的,但该列不会传输到生产数据库。

我的问题是:有没有办法在两个表之间运行数据比较,不包括比较本身的特定列(其他字段提供足够的信息来区分没有它)但在更新目标数据库时包括它?

【问题讨论】:

    标签: sql-server visual-studio data-comparison


    【解决方案1】:

    您可以在大型 varbinary 字段上使用哈希函数并进行比较。带有 MD5 的HASHBYTES 是一种很好的比较方法,因为它在天文上不太可能为两个不同的输入生成相同的哈希值。问题是,HASHBYTES 仅适用于最多 8000 字节的字段。通过创建一个函数可以解决一些问题。一些贴在这里:

    SQL Server 2008 and HashBytes

    您可以选择在插入或更新时使用持久计算字段将哈希值存储在表中。或者您可以在进行比较查询时生成哈希值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-14
      • 2015-03-10
      • 2013-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多