验证SQL Server表中的数据

时间:2013-08-22 11:31:21

标签: sql sql-server

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

假设我有一个临时表,其中包含以下列Cat_ID,Amount,SRC_CDE

我有一个'维护',其中包含以下列CatID,Cat_Name

我必须验证登台表中的Cat_ID是否存在于每行的“维护”中

我使用以下语句来验证

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

我想知道除了对每一行使用select查询之外是否有更好的方法来执行上述操作。

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

谢谢

1 个答案:

答案 0 :(得分:1)

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

select
     staging.*
from
    staging
          left join maintable 
               on staging.catid=maintable.catid
where maintable.catid is null