gpt4 book ai didi

sql-server - 较少列的 Visual Studio 数据比较

转载 作者:行者123 更新时间:2023-12-03 01:00:38 27 4
gpt4 key购买 nike

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

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

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

最佳答案

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

SQL Server 2008 and HashBytes

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

关于sql-server - 较少列的 Visual Studio 数据比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31001506/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com