У 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
", але не допускайте помилок, якщо він не може його знайти.