Я пытаюсь создать сценарии обновления и возврата в SQL. Сценарий обновления добавляет столбец примерно так:
IF NOT EXISTS (SELECT * FROM sys.columns WHERE Name = N'ColumnName'
AND object_id = OBJECT_ID(N'[dbo].[TableName]'))
ALTER TABLE TableName
ADD ColumnName bit NOT NULL DEFAULT(0)
Сценарий возврата удаляет столбец следующим образом:
IF EXISTS (SELECT * FROM sys.columns WHERE Name = N'ColumnName'
AND object_id = OBJECT_ID(N'[dbo].[TableName]'))
ALTER TABLE TableName
DROP COLUMN ColumnName
Однако скрипт возврата выдает эту ошибку:
Msg 5074, Level 16, State 1, Line 5
The object 'DF__TableName__ColumnName__1BF3D5BD' is dependent on column 'ColumnName'.
Msg 4922, Level 16, State 9, Line 5
ALTER TABLE DROP COLUMN ColumnName failed because one or more objects access this column.
Я знаю, как удалить ограничение, но имя ограничения меняется каждый раз (суффикс меняется). Мне либо нужен SQL Server, чтобы прекратить создавать это ограничение с произвольным именем, ИЛИ мне нужно иметь возможность удалить ограничение в моем скрипте, используя символы подстановки, так как имя меняется.