В Microsoft SQL Server я знаю запрос, чтобы проверить, существует ли ограничение по умолчанию для столбца и удалить ограничение по умолчанию:
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
Но из-за опечатки в предыдущих версиях базы данных имя ограничения могло быть DF_SomeTable_ColName
или DF_SmoeTable_ColName
.
Как я могу удалить ограничение по умолчанию без каких-либо ошибок SQL? Имена ограничений по умолчанию не отображаются в таблице INFORMATION_SCHEMA, что несколько усложняет ситуацию.
Итак, что-то типа «удалить ограничение по умолчанию в этой таблице / столбце» или «удалить DF_SmoeTable_ColName
», но не выдает никаких ошибок, если он не может его найти.