외래키를 잡기도 마땅치 않고, 따로 구현하기는 싫을 때..

다른 테이블의 행에 있는 값으로 제약조건을 만들 수 있다. 




-- STATUS 제약조건 함수

CREATE FUNCTION SF_CHK_STATUS

(

        @DATA VARCHAR(24)

)

RETURNS INT

AS

BEGIN

    DECLARE @RCODE INT

        SELECT @RCODE = COUNT(*) FROM CODE_TABLE WHERE CODE = @DATA     

        RETURN @RCODE

END

 

-- 테이블에 제약조건 삽입

ALTER TABLE TABLE_NAME ADD CONSTRAINT CHK_STATUS CHECK (DBO.SF_CHK_STATUS([STATUS]) > 0)

 



Posted by motolies
,