多次比较同一个表的两行

时间:2010-07-12 15:17:07

标签: c# sql ado.net

我有一个包含快照数据的SQLServer表。我需要将最新的行与之前的行进行比较,并确定某些列是否已更改。我需要多次比较不同的列组合,一次最多40个。每当列值在其中一个组合中不同时,我需要创建一个包含最新值的xml文档。我希望每一行都能生成至少一个xml文档。

执行比较的最佳位置在哪里,我应该在存储的过程中执行此操作,每个列的组合一个。或者我应该通过ADO.NET拉回整行并在代码中比较它们?有没有简单的方法进行比较?

3 个答案:

答案 0 :(得分:2)

您没有提供足够的详细信息(DDL,示例等)来了解这是否是您想要做的但是......

在过去的情况下,我会在该表上创建一个触发器,并将更改日志写入另一个表。然后读取,处理和删除那些排队的更改条目。

在触发器中,您可以查询列的状态以查看其是否已更新。

答案 1 :(得分:0)

首先通过ADO.Net比较行似乎 slick ,但可以很快变旧。随着数据量的增加,您的执行时间也会增加。

SQL Server中的比较是您最好的选择。

答案 2 :(得分:0)

通常,做你正在描述的工作的最佳(即最快)地点尽可能接近数据,即在数据库本身。

那就是说,我想知道你为什么这样做,如果有可能从另一个角度来解决这个问题。