sql >> Database >  >> RDS >> Sqlserver

Aangepaste functie met controlebeperking SQL Server 2008

Zoals Martin Smith zei, heeft het gebruik van een controlebeperking met een UDF enkele problemen en kan een negatieve invloed hebben op de prestaties, maar als je het toch wilt proberen, zou deze code moeten werken:

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. Reconstrueer stand-by DB

  2. Een leaderboard maken, hoe zou ik rang/positie weergeven?

  3. Doctrine 2 DQL MySQL gelijk aan ROUND()?

  4. Kan een tabel meerdere primaire sleutels hebben?