欢迎来到天天文库
浏览记录
ID:8801520
大小:169.00 KB
页数:6页
时间:2018-04-08
《sqlserver查看表的某行是否被更新》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Sqlserver查询某行是否被更新过创建测试表CREATETABLE[A]([AID][int]NULL,[BList][varchar](4000)COLLATEChinese_PRC_CI_ASNULL)表A基本数据如下:查询表的结构:selectcolumn_name,data_type,Is_Nullable,*frominformation_schema.columnswheretable_name='A'--创建表createtableA_CheckUpdate(AIDint,Bi
2、naryCheckSumint,Remarkvarchar(50))--将表A的初始数据插入检测更新表中insertintoA_CheckUpdateselectAID,Binary_CheckSum(*),'检查A表行是否改变'fromAselect*fromAselect*fromA_CheckUpdate–检测更新表updateAsetblist='001,004'whereaid=3–更新ID=3的行--查询A表被更新过的记录select*fromA_CheckUpdatewhereex
3、ists(selectAIDfromAwhereA.AID=A_CheckUpdate.AIDandbinary_checksum(*)<>A_CheckUpdate.BinaryCheckSum)返回AID=3的记录被更改过函数BINARY_CHECKSUM返回对表中的行或表达式列表计算的二进制校验值。BINARY_CHECKSUM可用于检测表中行的更改。语法BINARY_CHECKSUM(*
4、expression[,...n])参数*指定对表中的所有列进行计算。BINARY_CHECKSUM
5、在计算中忽略具有不可比数据类型的列。不可比数据类型是text、ntext、image、cursor以及基本类型为前4个数据类型之一的sql_variant。expression任何类型的表达式。BINARY_CHECKSUM在计算中忽略具有不可比数据类型的表达式。注释在表中任一行上计算的BINARY_CHECKSUM(*)返回相同的值,只要随后没有修改行。BINARY_CHECKSUM(*)将为大多数(但不是全部)行更改返回不同的值,并可用于检测大多数行修改。函数CHECKSUM返回在表的行上或
6、在表达式列表上计算的校验值。CHECKSUM用于生成哈希索引。语法CHECKSUM(*
7、expression[,...n])参数*指定在表的所有列上进行计算。如果有任一列是非可比数据类型,则CHECKSUM返回错误。不可比数据类型是text、ntext、image、cursor以及基本类型为前4个数据类型之一的sql_variant。expression是除非可比数据类型之外的任何类型的表达式。返回类型int注释CHECKSUM在其参数列表上计算一个称为校验值的哈希值。此哈希值用于生成哈希索引。
8、如果CHECKSUM的参数是列,且在计算的CHECKSUM值上生成索引,则其结果是可用于在列上等价搜索的哈希索引。CHECKSUM满足哈希函数的下列属性:在使用等于(=)运算符比较时,如果两个列表的相应元素具有相同类型且"相等",则在任何两个表达式列表上应用的CHECKSUM将返回同一值。这种定义的目的在于:给定类型的NULL值被作为"相等"进行比较。如果表达式列表中的某个值发生变化,那么列表的校验值通常也会变化。但只在极少数情况下,校验值会保持不变。BINARY_CHECKSUM和CHECKS
9、UM具有相似的功能:它们可用于计算表达式列表上的校验值,且表达式的顺序将影响结果值。在CHECKSUM(*)中使用的列顺序是在表或视图定义中指定的列顺序,包括计算列。CHECKSUM和BINARY_CHECKSUM仅为字符串数据类型返回不同的值,这类字符串的区域设置可能导致具有不同表示法的字符串进行等值比较。字符串数据类型是char、varchar、nchar、nvarchar或sql_variant(如果其基本类型是字符串数据类型)。例如,字符串"McCavity"和"Mccavity"的BI
10、NARY_CHECKSUM值不同。反之,在不区分大小写的服务器中,上述字符串的CHECKSUM返回相同的校验值。CHECKSUM值不应与BINARY_CHECKSUM值进行比较。示例使用CHECKSUM生成哈希索引CHECKSUM函数可以用于生成哈希索引。通过将计算校验值列添加到索引的表中,然后在校验值列上生成索引来生成哈希索引。--Createachecksumindex.SETARITHABORTONUSENorthwindGOALTERTABLEProductsADDcs_PnameASc
此文档下载收益归作者所有