in SQL Server 2008, um sicherzustellen, dass die erwartete Anwesenheit von Ereignissen nicht übertrifft, die Kapazitäten der Veranstaltungsorte für die Planung und Ressourcenversorgung überschreiten. Um diese Einschränkung durchzusetzen, kann eine benutzerdefinierte Funktion in Verbindung mit einer Überprüfung eingesetzt werden.
Die benutzerdefinierte Funktion mit dem Namen CheckvenueCapacity, nimmt zwei Parameter: @venue_id und @Capacity. Es vergleicht die angegebene @Capacity mit der maximalen Kapazität für den Veranstaltungsort mit dem gegeben @venue_id. Wenn die @Capacity kleiner oder gleich der Veranstaltungsortkapazität ist, gibt sie 0 zurück; Andernfalls kehrt es zurück. Gibt int int ALS BEGINNEN Declare @Retval int Wählen Sie @retval = case, wenn venue_max_capacity> = @capacity dann 0 sonst 1 Ende Von Veranstaltungsorten Wo venue_id = @venue_id Return @retval ENDE; Go
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
table Events Events Events Events Events Events Events Events Events Events Events Events Events Events Events Events Events Events Ereignisse):
ALTER TABLE events ADD CONSTRAINT chkVenueCapacity CHECK (dbo.CheckVenueCapacity(event_venue_id, event_expected_attendance) = 0);table Events Events Events Events Events Events Events Events Events Events Events Ereignisse):
table Events Events Events Events Events Events Ereignisse veranstalten.
Fügen Sie die Einschränkung Chkvenuecapacity hinzu
Check (dbo.checkvenuecapacity (event_venue_id, event_expected_attendance) = 0);
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3