SQL Server 2008에서 검사 제약 조건을 사용하여 사용자 정의 함수 생성
SQL Server 데이터베이스 작업 시 데이터 무결성을 유지하는 것이 중요합니다. 검사 제약 조건은 테이블에 삽입된 데이터가 지정된 규칙을 준수하는지 확인하는 중요한 메커니즘을 제공합니다. 이러한 맥락에서 check 제약 조건을 사용하여 두 테이블 간의 관계를 검증하는 사용자 지정 함수를 생성해야 할 필요성이 발생합니다.
구체적으로 이 경우 목표는 event_expected_attendance 열에 check 제약 조건을 설정하는 것입니다. 이벤트 테이블, 장소 테이블의 Venue_max_capacity 정수를 초과하지 않는지 확인합니다. 이를 달성하려면 사용자 정의 함수를 검사 제약 조건 내에서 정의하고 참조해야 합니다.
사용자 정의 함수 만들기
CheckVenueCapacity라는 사용자 정의 함수는 제공된 용량 값은 지정된 Venue_id에 대한 Venue_max_capacity보다 작거나 같습니다. 함수 코드는 다음과 같습니다.
CREATE FUNCTION dbo.CheckVenueCapacity (@venue_id int, @capacity int) RETURNS int AS BEGIN DECLARE @retval int SELECT @retval = CASE WHEN venue_max_capacity >= @capacity THEN 0 ELSE 1 END FROM venues WHERE venue_id = @venue_id RETURN @retval END;
이 함수는 수용 인원이 유효한 경우 0을 반환하고, 장소의 최대 수용 인원을 초과하는 경우 1을 반환합니다.
검사 제약 조건 추가
커스텀 함수가 정의되면 이벤트에 검사 제약 조건을 추가할 수 있습니다. table:
ALTER TABLE events ADD CONSTRAINT chkVenueCapacity CHECK (dbo.CheckVenueCapacity(event_venue_id, event_expected_attendance) = 0);
이 제약 조건은 event_expected_attendance 열에 대한 모든 데이터 삽입이 CheckVenueCapacity 함수에 의해 검증되도록 보장하여 장소의 최대 수용 능력을 위반하는 값을 방지합니다.
위 내용은 테이블 전체에서 데이터의 유효성을 검사하기 위해 사용자 지정 함수를 사용하여 SQL Server 검사 제약 조건을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!