0

我正在尝试使用存储过程验证 SQL Server 表中存在的数据。在其中一个验证规则中,我必须检查特定列的值是否存在于另一个表中。

假设我有一个包含以下列 Cat_ID、Amount、SRC_CDE 的临时表

我有一个包含以下列 CatID 、 Cat_Name 的“maintable”

我必须验证暂存表中存在的 Cat_ID 是否存在于每一行的“maintable”中

我正在使用以下语句来验证

if((Select count(*) from maintable where CatID= @Cat_id) >0 )
-- Do something if data present

我想知道除了对每一行使用选择查询之外,是否有更好的方法来做上述事情。

我可以使用某种数组,我可以从 maintable 和检查中获取所有 CatID,而不是使用选择查询。

谢谢

4

1 回答 1

1

使用 aleft join列出所有无效行。

select
     staging.*
from
    staging
          left join maintable 
               on staging.catid=maintable.catid
where maintable.catid is null
于 2013-08-22T12:10:18.107 回答