Was sind T-SQL Constraints?
Bei Constraints (engl. für “Einschränkungen”) handelt es sich um durch den Entwickler vorzugebende Regeln. Diese werden direkt auf Datenbankebene implementiert und durch diese überwacht. Derart abgesichert, sind Fehleingaben bei der Datenpflege nicht mehr möglich. Somit definieren Constraints Bedingungen, die beim Einfügen, Ändern oder Löschen von Datenbankinhalten erfüllt werden müssen.
Da Tabellen Werte innerhalb einer relationalen Datenbank speichern, hängen Constraints auch genau an dieser Art von Objekten. Sichten, Trigger, Prozeduren und Funktionen können keine Constraints haben.
Wann und wie werden Constraints erstellt?
Derartige Bedingungen kann man immer programmatisch erstellen. Man schreibt hierzu einen Quellcode mit normalen DDL-Befehlen. Dies kann schon beim Anlegen eines Objektes (CREATE TABLE) oder später als Änderungsanweisung (ALTER TABLE) geschehen. Es ist möglich Constraints einzeln zu löschen (DROP CONSTRAINT). Wenn das zugehörige Objekt gelöscht wird, werden gleichzeitig auch alle daran gebundenen Constraints eleminiert.
Es ist bei den meisten Constraints auch möglich, diese bequem über die grafische Benutzeroberfläche, bspw. das SQL Server Management Studio, zu pflegen.
Constraints gelten sofort. Mit ihrer Anlage sind sie automatisch aktiviert. Man kann sie zu Testzwecken einzeln deaktivieren, dann werden die implementierten Prüfungen nicht durchlaufen. Nach einer Reaktivierung findet die Bedingung dann sofort wieder Anwendung.
CREATE TABLE [Ereignis] (
[ID] INTEGER NOT NULL,
[Bezeichnung] VARCHAR(255) NOT NULL,
[Datum] DATE,
[Ort] VARCHAR(255),
CONSTRAINT [chkEreignis] CHECK ([Datum]>=’20240101’ AND [Ort]=’Duisburg‘)
);
Anlage einer Tabelle mit sofortiger Constraint-Einrichtung
ALTER TABLE [Ereignis]ADD CONSTRAINT [chkEreignis2] CHECK ([Bezeichnung] LIKE ‚D%‘);
Spätere Erweiterung um einen weiteren Constraint
Welche Arten von T-SQL Constraints gibt es?
Man unterscheidet verschiedene Arte von Einschränkungen. Manche Arten können pro Tabelle nur einfach vorkommen (Primery Key Constraint), andere können auch mehrfach in unterschiedlicher Ausprägung an dieselbe Tabelle gebunden werden. Verschiedene Arten lassen sich problemlos an einer Tabelle gleichzeitig einsetzen.
- NOT NULL Constraint
Soll in eine Spalte kein NULL-Wert eingegeben werden können, nutzt man einen NOT NULL Constraint - UNIQUE Constraint
Mit dieser Bedingung erzwingt man einzigarte Werte in einer Spalte. Dubletten sind nicht mehr möglich. - Primery Key Constraint
Bei dieser Beschränkung handelt es sich um eine Kombination aus der UNIQUE- und der NOT NULL-Beschränkung, wobei die Spalte oder die Gruppe von Spalten, die am PRIMARY KEY beteiligt sind, einzigartig sind und keinen NULL-Wert annehmen können. - Foreign Key Constraint
Hier wird die Eingabe von Werten erzwungen, die in einer anderen Tabelle der Primärschlüssel sind. Werte, die es in der zweiten Tabelle nicht gibt, werden abgelehnt. - Check Constraint
Der Wert in einer Spalte mit einer Prüfbeschränkung kann nur eingegeben werden, wenn die T-SQL Prüfbeschränkung als wahr ausgewertet wird. - Default Constraint
Mit dieser Art der Constraints werden Ersatzwerte vorgegeben, die automatisch eingefügt werden, wenn in einem INSERT-Statement ein NULL-Wert für die betroffene Spalte übergeben wird.
Warum sollte ich Constraints einsetzen?
Es gibt keine zuverlässigere Möglichkeit als die Nutzung von Constraints, um die Inhalte seiner Datenbank zu schützen. Merke: Was immer ein Nutzer eingeben oder ändern kann, wird er früher oder später auch bewusst oder unbewusst machen. Nur wenn die Datenbank sicherstellt, das keine ungewollten Pflegeinhalte gespeichert werden, kann der Inhalt einer Datenbank zuverlässig positiv garantiert werden.
Die Einrichtung passender T-SQL Constraints ist eine einmalige Arbeit. Dieser Aufwand lohnt sich aber definitiv! Es ist erfahrungsgemäß um ein Vielfaches zeit- und kostenintensiver eine inhaltlich „verunreinigte“ Datenbank zu säubern – wenn es überhaupt möglich ist.
Da Constraints auf DB-Ebene wirken, greifen sie bei jeder Art der Datenmanipulation. Egal ob durch einen Sachbearbeiter über eine Applikations-GUI oder einen Entwickler mit T-SQL-Befehlen… die Beschränkungen sorgen für saubere Daten!
Unsere Spezialisten
Wir sind seit vielen Jahren Spezialisten für die gesamte Datenverarbeitung von der Speicherung, über die Analyse bis zum fertigen Bericht. Außerdem bauen wir seit fast zwei Jahrzehnten Datenbanken für Unternehmen verschiedenster Größen. Wenn Sie weitere Fragen kontaktieren Sie uns doch einfach.