sql >> Database teknologi >  >> RDS >> Sqlserver

Brugerdefineret funktion med kontrolbegrænsning SQL Server 2008

Som nævnt af Martin Smith har brugen af ​​en kontrolbegrænsning med en UDF nogle problemer og kan have en negativ indvirkning på ydeevnen, men hvis du alligevel vil prøve det, burde denne kode virke:

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


  1. Opdateringsforespørgsel virker ikke ved hjælp af php

  2. Forespørgsel Oracle-begrænsning efter søgetilstands værdi

  3. Får du mysql-feltdata, når der klikkes på et link?

  4. SQL-antal efter gruppe