ホームページ >データベース >mysql チュートリアル >カスタム関数を使用してテーブル全体のデータを検証する SQL Server チェック制約を作成する方法
SQL Server 2008 でのチェック制約を使用したカスタム関数の作成
SQL Server データベースを操作する場合、データの整合性を維持することが重要です。チェック制約は、テーブルに挿入されたデータが指定されたルールに従っていることを確認するための貴重なメカニズムを提供します。このコンテキストでは、チェック制約を使用して 2 つのテーブル間の関係を検証するカスタム関数を作成する必要があります。
具体的には、この場合の目標は、 events テーブルで、venue_max_capacity の整数を超えないようにします。これを実現するには、チェック制約内でカスタム関数を定義し、参照する必要があります。
カスタム関数の作成
CheckVenueCapacity という名前のカスタム関数は、提供されたかどうかをチェックします。キャパシティー値は、指定されたvenue_id のvenue_max_capacity 以下です。関数のコードは次のとおりです。
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;
この関数は、収容人数が有効な場合は 0 を返し、会場の最大収容人数を超えている場合は 1 を返します。
チェック制約の追加
カスタム関数を定義したら、イベントにチェック制約を追加できますtable:
ALTER TABLE events ADD CONSTRAINT chkVenueCapacity CHECK (dbo.CheckVenueCapacity(event_venue_id, event_expected_attendance) = 0);
この制約により、event_expected_attendance 列へのデータの挿入が CheckVenueCapacity 関数によって検証され、会場の最大収容人数に違反する値が防止されます。
以上がカスタム関数を使用してテーブル全体のデータを検証する SQL Server チェック制約を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。