Sql server Visual Studio数据比较,列数较少

Sql server Visual Studio数据比较,列数较少,sql-server,visual-studio,data-comparison,Sql Server,Visual Studio,Data Comparison,我的项目目前有一个包含多个表的数据库,其中最重要的表有一个二进制列,其中包含非常大的条目(表示序列化的C#对象)。生产数据库中有大量条目,调试时,通常需要将这些条目拉入本地开发数据库(因为远程调试似乎不起作用,这是一个单独的问题) 如果我尝试将此表上的本地和生产数据库与所有列进行比较,比较可能需要一个小时,或最终超时,但这在过去一直有效,允许我下载条目并成功调试它们。如果我对除二进制数据列以外的所有表列进行比较,比较几乎是瞬时的,但该列随后不会传输到生产数据库 我的问题是:是否有任何方法可以在两

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

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


我的问题是:是否有任何方法可以在两个表之间运行数据比较,但不包括用于比较本身的特定列(其他字段提供足够的信息,可以在没有它的情况下进行区分)但在更新目标数据库时是否包含它?

您可以在大型
varbinary
字段上使用哈希函数,并对其进行比较<使用MD5的code>HASHBYTES是一种比较的好方法,因为从天文角度看,它不太可能为两个不同的输入生成相同的哈希值。问题是,
HASHBYTES
仅适用于最多8000字节的字段。不过,通过创建函数,可以解决一些问题。以下是一些帖子:

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