cnConstraints (Systemtabelle) #
Die Tabelle cnConstraints ist eine EULANDA-Systemtabelle, die benutzerdefinierte Constraints (Einschränkungen) und deren Fehlermeldungen registriert. Wenn ein Constraint ausgelöst wird, sucht EULANDA in dieser Tabelle nach der zugehörigen Fehlermeldung und zeigt sie dem Benutzer an.
Spalten #
| Spalte | Typ | Nullable | Beschreibung |
|---|---|---|---|
id | int IDENTITY(1,1) | NOT NULL | Primärschlüssel |
ConstraintName | varchar(100) | NOT NULL | Name des Constraints (z.B. CK_USER_AD_Pflichtfelder) |
Tablename | varchar(100) | NOT NULL | Name der Tabelle, auf der der Constraint definiert ist |
Operation | varchar(20) | NOT NULL | Auslösende Operation (INSERT, UPDATE, DELETE) |
MsgId | int | NOT NULL | ID der Fehlermeldung |
HelpId | int | NULL | ID der Hilfetextes |
AdminId | int | NULL | ID der Administrator-Meldung |
Vendor | varchar(20) | NOT NULL | Ersteller-Kürzel (USER, CNSOFT, Solutionpartner-Kürzel) |
Verwendung #
Wenn ein CHECK-Constraint auf einer EULANDA-Tabelle verletzt wird, gibt der SQL-Server eine technische Fehlermeldung aus. Durch einen Eintrag in cnConstraints kann EULANDA diese Meldung durch einen benutzerfreundlichen Text ersetzen.
Beispiel #
-- Constraint anlegen
ALTER TABLE Adresse
ADD CONSTRAINT CK_USER_AD_Pflichtfelder
CHECK (Name1 IS NOT NULL AND Name1 <> '')
-- Fehlermeldung registrieren
INSERT INTO cnConstraints
(ConstraintName, Tablename, Operation, MsgId, Vendor)
VALUES
('CK_USER_AD_Pflichtfelder', 'Adresse', 'INSERT,UPDATE', 0, 'USER')
Siehe auch #
- Namenskonventionen – Regeln für Constraint-Namen
- Benutzer-Trigger – Alternative für komplexe Prüfungen