Như đã nêu bởi Martin Smith, việc sử dụng ràng buộc kiểm tra với UDF có một số vấn đề và có thể có tác động tiêu cực đến hiệu suất, nhưng nếu bạn muốn thử thì mã này sẽ hoạt động:
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);