2010-01-07 7 views

답변

0

: 그것은 트릭을 수행하고 신속하게 당겨해야

IF EXISTS 
(
SELECT 1 FROM Master1 WHERE (...) 
UNION ALL 
SELECT 1 FROM Master2 WHERE (...) 
UNION ALL 
SELECT 1 FROM Master3 WHERE (...) 
)  
BEGIN 
... 
END 

...

0

아니요, 값을 대체 할 항목이 있습니다. 그들을 문자열로 추가하거나 숫자를 더할 수 있습니다. 그러나 나쁜 습관입니다. 더 나은 결과 집합을 반환하는, 즉 :

에 대해 어떻게
SELECT 
    (select count(*) FROM Master1 WHERE (...)) as 'Foo1', 
    (SELECT count(*) FROM Master2 WHERE (...)) as 'Foo2', 
    (select count(*) FROM Master3 WHERE (...)) as 'Foo3' 
+0

이러한 문 중 하나가 1을 반환하면 내가 프로세스를 중지해야 Pls는. 더 좋은 방법을 알고 싶다. – Geeth

+0

그런 다음 개별 변수를 선언하고 각 할당 후에 결과를 확인한 다음 위의 결과 세트로 묶음을 반환한다. 분명하니? –

+0

고맙습니다. 더 좋은 옵션이 없습니까? – Geeth

0

에만없는 경우는 실행하려면 이 존재합니다.

EXISTS 키워드를 사용할 수 있습니다.

이와 비슷한 것.

IF NOT EXISTS SELECT ID FROM Master1 WHERE (...) 
    IF NOT EXISTS SELECT ID FROM Master2 WHERE (...) 
    IF NOT EXISTS SELECT ID FROM Master3 WHERE (...) 
    BEGIN 
     ..do stuff... 
    END 

카운트가 0이면 NOT EXISTS가 참입니다. 카운트를 사용하지 않습니다. 쿼리를 실행하려면 열을 선택하십시오.

지금 테스트 할 수 없습니다, 구문은 다음과 같습니다

IF NOT EXISTS (SELECT ID FROM Master1 WHERE (...)) 
    IF NOT EXISTS (SELECT ID FROM Master2 WHERE (...)) 
    IF NOT EXISTS (SELECT ID FROM Master3 WHERE (...)) 
    BEGIN 
     ..do stuff... 
    END 
관련 문제