Definieren eines Check Constraint
Wenn ein Check Constraint definiert ist, werden Daten entsprechend des im Check Constraint angegebenen Ausdrucks validiert, bevor sie zur Tabelle hinzugefügt werden. Nicht erfolgreich validierte Daten werden nicht hinzugefügt.
In diesem Abschnitt des Tutorials erstellen Sie einen Check Constraint, der sicherstellt, dass Die Spalten "Mother" und "Father" in der Tabelle tblAnimalBirths nicht identisch sind.
So definieren Sie den Check Constraint:
1.Öffnen Sie das zuvor erstellte Projekt "ZooDB" und doppelklicken Sie auf die Datenquelle ZooDBConnect, um eine Verbindung dazu herzustellen.
2.Klicken Sie im Online Browser mit der rechten Maustaste auf die Tabelle tblAnimalBirths und wählen Sie Design Editor | In neuem Design Editor anzeigen aus dem Kontextmenü.
3.Klicken Sie mit der rechten Maustaste in das Tabellen-Design und wählen Sie Neu einfügen | Check Constraint aus dem Kontextmenü. Im Design wird ein Check Constraint mit dem Namen <generiert> erstellt und der Eintrag wird zur Bearbeitung ausgewählt.
4.Ändern Sie den Constraint-Namen optional von <generiert> in "CK_CheckParents" und drücken Sie die Eingabetaste. Wenn Sie den Namen <generiert> belassen, wird der Schlüsselname automatisch von der Datenbank generiert.
5.Doppelklicken Sie in der Spalte Ausdruck auf den Eintrag "[Ausdruck erforderlich]", geben Sie "Mother <> Father" ein und drücken Sie die Eingabetaste.
6.Klicken Sie im Fenster "Datenbankstruktur-Change Script" auf die Schaltfläche Change Script ausführen , um das Change Script auszuführen und den neuen Check Constraint in die Datenbank zu übernehmen.
Testen des Check Constraint
Nachdem der Check Constraint in die Datenbank übernommen wurde, ist es unmöglich, in die Spalten "Mother" und "Father" die gleiche AnimalID einzugeben. So führt z.B. eine SQL-Anweisung wie die unten gezeigte zu einem Fehler, da sie versucht, einen Datensatz hinzuzufügen, in dem die Werte von "Mother" und "Father" dieselben sind:
INSERT INTO [ZooDB].[dbo].[tblAnimalBirths] ([BirthDate], [Mother], [Father], [Veterinarian], [NumberInLitter]) VALUES ('2019-04-24 00:00:00', 5055, 5055, 4, 3) ; |