Sql server

Sql server ,sql-server,hash,checksum,Sql Server,Hash,Checksum,编辑 或者根据新的要求,如果您想确保数据与上次读取时的数据相同,只需使用一列即可。我不认为跟踪数百万个校验和结果与跟踪行版本或其他计算值有什么不同。你工作太辛苦了,而你已经有了自己想要做的事情……我也面临着这个问题。当所有值在同一列中时显示。计算总和时,可能不需要这个列。很有趣!看起来我也无意中发现了那篇评论中提出的同样的建议。也许,先做这件事是最好的选择。谢谢谢谢你的回复。关于索引,你是绝对正确的。不幸的是,我需要以某种方式“引用”这些数据集,并添加一些元数据,因此我需要某种类型的ID,以便将

编辑


或者根据新的要求,如果您想确保数据与上次读取时的数据相同,只需使用一列即可。我不认为跟踪数百万个校验和结果与跟踪行版本或其他计算值有什么不同。你工作太辛苦了,而你已经有了自己想要做的事情……

我也面临着这个问题。当所有值在同一列中时显示。计算总和时,可能不需要这个列。

很有趣!看起来我也无意中发现了那篇评论中提出的同样的建议。也许,先做这件事是最好的选择。谢谢谢谢你的回复。关于索引,你是绝对正确的。不幸的是,我需要以某种方式“引用”这些数据集,并添加一些元数据,因此我需要某种类型的ID,以便将其存储在另一个表中。我会用更多的信息来更新这个问题,我不能把这些信息放在这个评论中。 DECLARE @Rows TABLE ( [GroupId] INT, [StartDate] DATETIME, [EndDate] DATETIME ) --Group1 INSERT INTO @Rows VALUES (1, '2013-01-20 01:00:00.000', '2013-01-20 01:20:00.000') INSERT INTO @Rows VALUES (1, '2013-01-20 01:20:00.000', '2013-01-20 01:40:00.000') --INSERT INTO @Rows VALUES (1, '2013-01-20 01:40:00.000', '2013-01-20 02:00:00.000') --INSERT INTO @Rows VALUES (1, '2013-01-20 02:00:00.000', '2013-01-20 02:20:00.000') --INSERT INTO @Rows VALUES (1, '2013-01-20 02:20:00.000', '2013-01-20 02:40:00.000') --INSERT INTO @Rows VALUES (1, '2013-01-20 02:40:00.000', '2013-01-20 03:00:00.000') --Group2 INSERT INTO @Rows VALUES (2, '2013-01-21 01:00:00.000', '2013-01-21 01:20:00.000') INSERT INTO @Rows VALUES (2, '2013-01-21 01:20:00.000', '2013-01-21 01:40:00.000') --INSERT INTO @Rows VALUES (2, '2013-01-21 01:40:00.000', '2013-01-21 02:00:00.000') --INSERT INTO @Rows VALUES (2, '2013-01-21 02:00:00.000', '2013-01-21 02:20:00.000') --INSERT INTO @Rows VALUES (2, '2013-01-21 02:20:00.000', '2013-01-21 02:40:00.000') --INSERT INTO @Rows VALUES (2, '2013-01-21 02:40:00.000', '2013-01-21 03:00:00.000') SELECT [ChecksumAgg1] = CHECKSUM_AGG([CheckSum]) FROM ( SELECT [CheckSum] = CHECKSUM([StartDate], [EndDate]) FROM @Rows WHERE GroupId = 1 ) G1 SELECT [ChecksumAgg2] = CHECKSUM_AGG([CheckSum]) FROM ( SELECT [CheckSum] = CHECKSUM([StartDate], [EndDate]) FROM @Rows WHERE GroupId = 2 ) G2
SELECT CHECKSUM_AGG(x)
FROM
(
  SELECT CHECKSUM(1,2)
  UNION ALL 
  SELECT CHECKSUM(2,3)
) AS y(x);

SELECT CHECKSUM_AGG(x)
FROM
(
  SELECT CHECKSUM(2,2)
  UNION ALL 
  SELECT CHECKSUM(1,3)
) AS y(x);
----
49

----
49