まず、問題のあるDEFAULT constraint
を削除する必要があります 、その後、列をドロップできます
alter table tbloffers drop constraint [ConstraintName]
go
alter table tbloffers drop column checkin
ただし、エラーは他の理由で表示される場合があります。たとえば、ユーザー定義の関数やSCHEMABINDING
を使用したビューなどです。 それらに設定されたオプション。
UPD: 制約スクリプトの完全に自動化された削除:
DECLARE @sql NVARCHAR(MAX)
WHILE 1=1
BEGIN
SELECT TOP 1 @sql = N'alter table tbloffers drop constraint ['+dc.NAME+N']'
from sys.default_constraints dc
JOIN sys.columns c
ON c.default_object_id = dc.object_id
WHERE
dc.parent_object_id = OBJECT_ID('tbloffers')
AND c.name = N'checkin'
IF @@ROWCOUNT = 0 BREAK
EXEC (@sql)
END