TSql checksum 比较两个表的数据是否相同
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了TSql checksum 比较两个表的数据是否相同,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2885字,纯文字阅读大概需要5分钟。
内容图文
![TSql checksum 比较两个表的数据是否相同](/upload/InfoBanner/zyjiaocheng/448/fb5c0f9b643c49c5893711b0855e9a4c.jpg)
MSDN对CheckSum的注释
1,CheckSum函数的语法是:CHECKSUM ( expression [ ,...n ] )
2,Note
CHECKSUM 对其参数列表计算一个称为校验和的哈希值。 此哈希值用于生成哈希索引。 如果 CHECKSUM 的参数为列,并且对计算的 CHECKSUM 值生成索引,则结果是一个哈希索引。 它可用于对列进行等价搜索。
CHECKSUM 满足哈希函数的下列属性:在使用等于 (=) 运算符比较时,如果两个列表的相应元素具有相同类型且相等,则在任何两个表达式列表上应用的 CHECKSUM 将返回同一值。 对于该定义,指定类型的 Null 值被作为相等进行比较。 如果表达式列表中的某个值发生更改,则列表的校验和通常也会更改。 但只在极少数情况下,校验和会保持不变。 因此,我们不推荐使用 CHECKSUM 来检测值是否更改,除非应用程序可以容忍偶尔丢失更改。 请考虑改用 HashBytes。 指定 MD5 哈希算法时,HashBytes 为两个不同输入返回相同结果的可能性比 CHECKSUM 小得多。
表达式的顺序影响 CHECKSUM 的结果值。 用于 CHECKSUM(*) 的列顺序是表或视图定义中指定的列顺序。 其中包括计算列。
CHECKSUM 值取决于排序规则,使用不同排序规则存储的相同值将返回一个不同的 CHECKSUM 值。
3,使用 CHECKSUM 生成哈希索引,通过将计算校验和列添加到索引的表中,然后对校验和列生成索引来生成哈希索引。
-- Create a checksum index ALTER TABLE Production.Product ADD cs_Pname AS CHECKSUM(Name); GO CREATE INDEX Pname_index ON Production.Product (cs_Pname); GO --校验和索引可用作哈希索引,尤其是当要索引的列为较长的字符列时可以提高索引速度。 校验和索引可用于等价搜索。 /*Use the index in a SELECT query. Add a second search condition to catch stray cases where checksums match, but the values are not the same.*/
SELECT * FROM Production.Product WHERE CHECKSUM(N‘Bearing Ball‘) = cs_Pname AND Name = N‘Bearing Ball‘; GO
对计算列创建索引将具体化为校验和列,对 ProductName 值所做的任何更改都将传播到校验和列。 也可以直接对索引的列生成索引。 然而,如果键值较长,则很可能不执行校验和索引甚至常规索引。
TSql checksum 比较两个表的数据是否相同
标签:
本文系统来源:http://www.cnblogs.com/ljhdo/p/4522381.html
内容总结
以上是互联网集市为您收集整理的TSql checksum 比较两个表的数据是否相同全部内容,希望文章能够帮你解决TSql checksum 比较两个表的数据是否相同所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。