CHECKSUM_AGG 应用场景

 

CHECKSUM_AGG 可用于检测表中的更改。表中行的顺序不影响 CHECKSUM_AGG 的结果。 此外,CHECKSUM_AGG 函数还可与 DISTINCT 关键字和 GROUP BY 子句一起使用。

 

对于下列两个场景来说非常有用:

1. 静态数据 数据需要从一个环境到另一个环境相同。

2. 数据迁移 验证所有迁移的列是正确的。

 

按照经验来讲,有些时候更新日期和插入日期,以及timestamp数据类型并不重要,所以,在比较的时候可以忽略这些列。

 

--用于检测表中是否有数据更改
USE AdventureWorks2012
GO
SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*))
FROM Sales.SalesOrderDetail
UPDATE Sales.SalesOrderDetail
SET UnitPrice = UnitPrice + .01
WHERE SalesOrderID = 43659
SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*))
FROM Sales.SalesOrderDetail