2013-08-22 4 views
0

Я пытаюсь проверить данные, присутствующие в таблице SQL Server, с помощью хранимой процедуры. В одном из правил проверки я должен проверить, присутствует ли значение конкретного столбца в другой таблице.Проверка данных в таблице SQL Server

Пусть у меня есть промежуточная таблица со следующими столбцами cat_id, Сумма, SRC_CDE

У меня есть «maintable» со следующими столбцами CatID, cat_name

Я должен проверить, существует ли cat_id присутствует в промежуточной таблице в «maintable» для каждой строки

Я использую следующее заявление для проверки

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

Я хочу K теперь, если есть лучший способ сделать выше, кроме использования запроса select для каждой строки.

Могу ли я использовать какой-то массив, где я могу получить все CatID из основной таблицы и проверки вместо использования запроса select.

Благодаря

+1

Почему тег mysql? было бы лучше проверить: 'IF EXISTS (ВЫБРАТЬ все отсутствующие строки)' –

ответ

1

Используя left join перечислить все недопустимые строки.

select 
    staging.* 
from 
    staging 
      left join maintable 
       on staging.catid=maintable.catid 
where maintable.catid is null 
Смежные вопросы