W programie Microsoft SQL Server znam zapytanie, aby sprawdzić, czy istnieje domyślne ograniczenie dla kolumny i usunąć domyślne ograniczenie:
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
Ale ze względu na literówkę w poprzednich wersjach bazy danych nazwa ograniczenia może być DF_SomeTable_ColName
lub DF_SmoeTable_ColName
.
Jak mogę usunąć domyślne ograniczenie bez błędów SQL? Domyślne nazwy wiązań nie pojawiają się w tabeli INFORMACJE_SCHEMA, co sprawia, że sprawy stają się nieco trudniejsze.
Tak więc coś w stylu „usuń domyślne ograniczenie w tej tabeli / kolumnie” lub „usuń DF_SmoeTable_ColName
”, ale nie podawaj żadnych błędów, jeśli nie można go znaleźć.