Erstellen einer benutzerdefinierten Funktion mit Check-Einschränkung in SQL Server 2008
Bei der Arbeit mit SQL Server-Datenbanken ist die Aufrechterhaltung der Datenintegrität von entscheidender Bedeutung. Prüfeinschränkungen stellen einen wertvollen Mechanismus dar, um sicherzustellen, dass in eine Tabelle eingefügte Daten den angegebenen Regeln entsprechen. In diesem Zusammenhang besteht die Notwendigkeit, eine benutzerdefinierte Funktion zu erstellen, die die Beziehung zwischen zwei Tabellen mithilfe einer Prüfeinschränkung validiert.
Konkret besteht das Ziel in diesem Fall darin, eine Prüfeinschränkung für die Spalte „event_expected_attendance“ in der Spalte „event_expected_attendance“ einzurichten Events-Tabelle und stellen Sie sicher, dass die Ganzzahl „ventory_max_capacity“ in der Venues-Tabelle nicht überschritten wird. Um dies zu erreichen, muss eine benutzerdefinierte Funktion definiert und innerhalb der Prüfeinschränkung referenziert werden.
Erstellen der benutzerdefinierten Funktion
Die benutzerdefinierte Funktion mit dem Namen CheckVenueCapacity prüft, ob die bereitgestellte Der Kapazitätswert ist kleiner oder gleich der Venue_max_capacity für die angegebene Venue_ID. Hier ist der Code für die Funktion:
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;
Diese Funktion gibt 0 zurück, wenn die Kapazität gültig ist, und 1, wenn sie die maximale Kapazität des Veranstaltungsortes überschreitet.
Hinzufügen der Prüfbeschränkung
Sobald die benutzerdefinierte Funktion definiert ist, können wir die Prüfeinschränkung zu den Ereignissen hinzufügen Tabelle:
ALTER TABLE events ADD CONSTRAINT chkVenueCapacity CHECK (dbo.CheckVenueCapacity(event_venue_id, event_expected_attendance) = 0);
Diese Einschränkung stellt sicher, dass jede Einfügung von Daten in die Spalte „event_expected_attendance“ von der CheckVenueCapacity-Funktion validiert wird, wodurch Werte verhindert werden, die die maximale Kapazität des Veranstaltungsortes verletzen würden.
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine SQL Server-Prüfungseinschränkung mithilfe einer benutzerdefinierten Funktion, um Daten tabellenübergreifend zu validieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!