SQL Server 2005 drop column with constraints

后端 未结 13 986
一向
一向 2020-12-07 23:54

I have a column with a \"DEFAULT\" constraint. I\'d like to create a script that drops that column.

The problem is that it returns this error:

Msg 50         


        
相关标签:
13条回答
  • 2020-12-08 00:52

    Perhaps it could help a little more:

    declare @tablename nvarchar(200)
    declare @colname nvarchar(200)
    declare @default sysname, @sql nvarchar(max)
    
    set @tablename = 'your table'
    set @colname = 'column to drop'
    
    select @default = name 
    from sys.default_constraints 
    where parent_object_id = object_id(@tablename)
    AND type = 'D'
    AND parent_column_id = (
        select column_id 
        from sys.columns 
        where object_id = object_id(@tablename)
        and name = @colname 
        )
    
    set @sql = N'alter table ' + @tablename + ' drop constraint ' + @default
    exec sp_executesql @sql
    
    set @sql = N'alter table ' + @tablename + ' drop column ' + @colname
    exec sp_executesql @sql
    

    Only need to set the @tablename & @colname variables to drop the column.

    0 讨论(0)
提交回复
热议问题