Comme indiqué par Martin Smith, l'utilisation d'une contrainte de vérification avec une UDF pose certains problèmes et peut avoir un impact négatif sur les performances, mais si vous voulez quand même l'essayer, ce code devrait fonctionner :
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);