2014-12-29 2 views
0

임시 테이블에 각 행의 값이 다른 열이 있습니다. 해당 열의 값이 다른 테이블의 행에 있는지 확인하고 싶습니다. 그렇지 않으면 RaisError가 호출됩니다. 임시 테이블에 행이 하나만있는 경우이 작업을 수행 할 수 있습니다. 두 개 이상있는 경우 그러나, 나는 점점 오전 :임시 테이블의 한 열에있는 데이터를 다른 테이블의 열로 확인하십시오.

Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , 

내 TSQL은 다음과 같습니다

IF ((SELECT tmp.[SomeRefNumber] FROM dbo.TmpTable as tmp) NOT IN (SELECT Source.SameRefDiffTable FROM SOURCETABLE)) 
    BEGIN 
     RAISERROR('Oh no reference doesn't exist ', 16, 1) WITH NOWAIT 
    END 

내가 무슨 일이 일어나고 있는지에 읽고 있었다,하지만 내가 찾은 솔루션 잔인한 것 같다 .

답변

0

그냥 내 쿼리가 나빴던 것으로 나타났습니다 .. 문제가 해결되었습니다.

IF EXISTS (SELECT tmp.[SomeRefNumber] FROM dbo.TmpTable as tmp where tmp.[SomeRefNumber] NOT IN (SELECT SOURCE.SameRefDiffTable FROM SOURCE)) 
BEGIN 
    RAISERROR('Oh no reference doesn't exist ', 16, 1) WITH NOWAIT 
END 
관련 문제