bu kodu deneyin:
Declare @TABLENAME varchar(max), @COLUMN varchar(max)
SET @TABLENAME = 'YOURTableName'
SET @COLUMN = 'YOURColumnName'
Declare @CONSTRAINT varchar(max)
set @CONSTRAINT ='ALTER TABLE '[email protected]+' DROP CONSTRAINT '
set @CONSTRAINT = @CONSTRAINT + (select SYS_OBJ.name as CONSTRAINT_NAME
from sysobjects SYS_OBJ
join syscomments SYS_COM on SYS_OBJ.id = SYS_COM.id
join sysobjects SYS_OBJx on SYS_OBJ.parent_obj = SYS_OBJx.id
join sysconstraints SYS_CON on SYS_OBJ.id = SYS_CON.constid
join syscolumns SYS_COL on SYS_OBJx.id = SYS_COL.id
and SYS_CON.colid = SYS_COL.colid
where
SYS_OBJ.uid = user_id() and SYS_OBJ.xtype = 'D'
and [email protected] and [email protected])
exec(@CONSTRAINT)
ve sonra düzenli alter tablo çalıştırın: Eğer o sütun üzerindeki tüm bağımlılıkları kaldırmak birinci kod ile
ALTER TABLE YOURTABLENAME
DROP COLUMN YOURCOLUMNNAME
ve sonra sorunsuz kaldırabilirsiniz .
DÜZENLEME - Çıkarma Varsayılan Değerler Kısıtlamalar:
Yukarıdaki kod bu durumda, bu yüzden DEFAULT_CONSTRAINTS kaldırmak gibi görünüyor değil aynı zamanda kullanmalısınız:
DECLARE @ConstraintName nvarchar(200)
SELECT @ConstraintName = Name FROM SYS.DEFAULT_CONSTRAINTS WHERE PARENT_OBJECT_ID = OBJECT_ID('__TableName__') AND PARENT_COLUMN_ID = (SELECT column_id FROM sys.columns WHERE NAME = N'__ColumnName__' AND object_id = OBJECT_ID(N'__TableName__'))
IF @ConstraintName IS NOT NULL
EXEC('ALTER TABLE __TableName__ DROP CONSTRAINT ' + @ConstraintName)