In Microsoft SQL Server ist mir bekannt, dass die Abfrage zum Überprüfen, ob eine Standardeinschränkung für eine Spalte vorhanden ist, und das Löschen einer Standardeinschränkung wie folgt lautet:
IF EXISTS(SELECT * FROM sysconstraints
WHERE id=OBJECT_ID('SomeTable')
AND COL_NAME(id,colid)='ColName'
AND OBJECTPROPERTY(constid, 'IsDefaultCnst')=1)
ALTER TABLE SomeTable DROP CONSTRAINT DF_SomeTable_ColName
Aufgrund von Tippfehlern in früheren Versionen der Datenbank kann der Name der Einschränkung jedoch DF_SomeTable_ColName
oder sein DF_SmoeTable_ColName
.
Wie kann ich die Standardeinschränkung ohne SQL-Fehler löschen? Standardbeschränkungsnamen werden in der Tabelle INFORMATION_SCHEMA nicht angezeigt, was die Dinge etwas schwieriger macht.
So etwas wie "Löschen Sie die Standardeinschränkung in dieser Tabelle / Spalte" oder "Löschen DF_SmoeTable_ColName
", aber geben Sie keine Fehler an, wenn sie nicht gefunden werden kann.