sql >> Base de Datos >  >> RDS >> Sqlserver

Función personalizada con restricción de verificación SQL Server 2008

Como dijo Martin Smith, el uso de una restricción de verificación con una UDF tiene algunos problemas y puede tener un impacto negativo en el rendimiento, pero si desea probarlo de todos modos, este código debería funcionar:

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);