1

我有一个仅通过存储过程与数据库交互的 asp.net / c# 应用程序。我试过这样做,但没有运气。

我有一个存储过程“A”,它返回(例如)... recordID & Description (1:Apple; 2:Banana; 3: Tomato)

我有另一个存储过程“B”,它返回(例如)... recordID & Description (1:Apple; 3: Tomato; 4:Grapes; 5:Oranges)

使用这些存储过程,我需要得到 B 减去 A(这意味着我需要在我的应用程序中获取“Grapes”、“Oranges”。

我知道如何调用两个存储过程。但是我将如何存储它们的价值并消除公共记录呢?

4

2 回答 2

1

如果您不希望这两个存储过程返回大型数据集,那么您可以在您的 ASP.NET 代码中完成它。将 A 的结果存储在一个集合(例如数据集)中,然后将 B 的结果存储在另一个集合中。您可以遍历这两个集合以消除重复记录。

但是,如果您确实希望这些存储的过程能够通过网络返回和传输大型数据集,那么您应该考虑按照@Paddy 的建议进行操作。

于 2012-08-08T11:53:19.823 回答
0

这里最好的事情是编写一个程序来实现最终结果。将 sp1 和代码 sp2 的正确代码作为单个 proc,最后计算您需要的结果集。

如果您在执行前两个查询后有 taable1 和 table2,那么只需执行

select * from table2
except
select * from table1
于 2012-08-08T12:44:38.803 回答