如何将表与存储过程中的表变量进行比较?通常我们使用这个查询来比较两个表:
SELECT *
FROM Table A
WHERE NOT EXISTS(SELECT *
FROM Table B
WHERE Table A.ID = Table B.ID)
但是在这里,我有表A
和一个表变量@Item
,就像表B。
在这种场景下,如何比较Table A
和@Item
?
我正在编写一个存储过程,在该存储过程中,我想将现有的一个表与从前端生成并作为 XML 数据集传递给存储过程的表变量进行比较... 这样,如果表变量@Item 中的所有行都出现在现有表中,则它返回 true 否则返回 false...
有什么建议....
最佳答案
在排除一个表的结果时,我总是更喜欢左连接语法:
select a.*
from [table] a
left outer join @item b
on a.ID = b.ID
where b.ID is null
我怀疑查询计划应该是一样的。
关于sql - 将表与 SQL Server 2005 中存储过程中的表变量进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6202049/