SQL Server 2008에서 검사 제약 조건이 있는 사용자 지정 함수
SQL Server 2008에서는 검사 제약 조건을 적용하는 사용자 지정 함수를 생성할 수 있습니다. 이는 여러 테이블의 데이터를 확인하거나 복잡한 유효성 검사를 수행해야 할 때 유용합니다.
문제 설명:
두 개의 기존 테이블, 장소 및 이벤트가 있고 이벤트 테이블의 event_expected_attendance 열 값이 항상 장소의 Venue_max_capacity 열보다 작거나 같은지 확인하려고 합니다. table.
사용자 정의 함수 구문:
사용자 정의 함수는 다음 구문을 사용합니다.
CREATE FUNCTION [schema_name].[function_name] ( [parameter_list] ) RETURNS [return_type] AS BEGIN -- Function body RETURN [return_value]; END;
Check Constraint에 대한 Join 문:
두 테이블의 데이터를 비교하는 검사 제약 조건을 생성하려면 다음을 사용할 수 있습니다. CHECK 절의 조인 문. JOIN 절을 사용하면 비교할 두 테이블과 열 간의 관계를 지정할 수 있습니다.
해결책:
다음 코드는 CheckVenueCapacity라는 사용자 정의 함수를 생성하고 용량 규칙을 적용하는 기능을 사용하는 검사 제약 조건:
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; GO ALTER TABLE events ADD CONSTRAINT chkVenueCapacity CHECK (dbo.CheckVenueCapacity(event_venue_id, event_expected_attendance) = 0);
이 솔루션은 용량이 충분하면 0을 반환하고 그렇지 않으면 1을 반환하는 함수입니다. 그런 다음 검사 제약 조건은 함수의 반환 값을 확인하고 용량을 초과하면 이벤트가 저장되지 않도록 합니다.
위 내용은 여러 테이블의 데이터 유효성을 검사하기 위해 SQL Server 2008에서 검사 제약 조건이 있는 사용자 지정 함수를 어떻게 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!