집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server 검사 제약 조건에서 하위 쿼리를 어떻게 사용할 수 있나요?
SQL Server 2008 R2에서 다음과 같은 하위 쿼리를 사용하여 검사 제약 조건을 정의하려고 합니다.
ALTER TABLE Table1 WITH CHECK ADD CONSTRAINT CK_Code CHECK (MyField in (Select Field From Table2))
이 경우 하위 쿼리가 허용되지 않음을 나타내는 오류가 발생합니다. context.
트리거 없이 이 유효성 검사를 수행하려면 하위 쿼리를 캡슐화하는 스칼라 함수를 생성하여 검사 제약 조건 내에서 사용할 수 있습니다. 예는 다음과 같습니다.
CREATE FUNCTION myFunction( @field DATATYPE(?) ) RETURNS VARCHAR(5) AS BEGIN IF EXISTS (SELECT * FROM Table2 WHERE MYFIELD = @field) RETURN 'True' RETURN 'False' END
함수가 정의되면 다음과 같이 check 제약 조건에서 사용할 수 있습니다.
ALTER TABLE Table1 WITH CHECK ADD CONSTRAINT CK_Code CHECK (myFunction(MYFIELD) = 'True')
특정 문자열(예: 'True')에 대해 함수에서 반환된 스칼라 값을 확인하여 원하는 유효성 검사는 다음과 같습니다. 검사 제약 조건에서 직접 하위 쿼리가 필요 없이 적용됩니다.
위 내용은 SQL Server 검사 제약 조건에서 하위 쿼리를 어떻게 사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!