gpt4 book ai didi

c# - SQL Server 2000 中的表差异

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:35:48 25 4
gpt4 key购买 nike

我正在使用 SQL Server 2000,给定一组数据(具有唯一 ID),我想找出数据库中行的差异,匹配唯一 ID。我也尽量保持它的灵 active 。

我可以在前端用C#/VB来取参数,甚至返回东西。也许传入 XML 并返回 XML?

例如,我想要一个调用的函数:

// returns the columns that are different
func( A, B, C ) {

}

有什么想法吗?

最佳答案

UNION 有一个很酷的技巧:

SELECT MAX(tbl) AS TABLE_NAME, unique_key
FROM (
SELECT 'table1' AS tbl, unique_key
FROM table1
UNION ALL
SELECT 'table2' AS tbl, unique_key
FROM table2
) AS X GROUP BY unique_key
HAVING COUNT(*) = 1

这将显示一侧或另一侧有行而另一侧没有的行。

显然,这可以扩展以做更多事情。

或者,您可以执行 INNER JOIN(匹配数据不同的键)、LEFT JOIN(键在一侧缺失)和 RIGHT JOIN (另一个键丢失)和 UNION 将它们全部放在一起。

我实际上有一个实用程序 SP(它使用一种或另一种方法,具体取决于您需要的选项),它将比较任意两个表,并具有设置哪些列被视为键的一部分、哪些列要忽略、限制的选项每一边到一个子集,等等。它甚至可以选择将差异写入表格。

关于c# - SQL Server 2000 中的表差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1494580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com