외래키를 잡기도 마땅치 않고, 따로 구현하기는 싫을 때..
다른 테이블의 행에 있는 값으로 제약조건을 만들 수 있다.
-- 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)