sql >> データベース >  >> RDS >> Sqlserver

チェック制約付きのカスタム関数SQLServer2008

    Martin Smithが述べたように、UDFでチェック制約を使用すると、いくつかの問題が発生し、パフォーマンスに悪影響を与える可能性がありますが、とにかく試してみたい場合は、このコードが機能するはずです。

    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. 画像をvarbinary(max)列に保存する方法は?

    2. 1つのレコードのみを検索するためのグループ化されたクエリ(employee_id =1またはnull)

    3. 日付範囲が存在することを確認するにはどうすればよいですか

    4. SQL句のGROUPBY1はどういう意味ですか?