В 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
", но не выдавайте никаких ошибок, если оно не может найти его.