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 5074, Level 16, State 1, Line 1 The object 'DF__PeriodSce__IsClo__4BCC3ABA' is dependent on column 'IsClosed'. Msg 4922, Level 16, State 9, Line 1 ALTER TABLE DROP COLUMN IsClosed failed because one or more objects access this column.
I couldn't find an easy way to drop a column and all its associated constraints (only found big scripts that look into the system table... there MUST (!!) be a "nice" way to do it.)
And as the DEFAULT constraint's name has been randomly generated, I can't drop it by name.
Update :
The constraint type is "DEFAULT".
I saw the solutions that you all proposed but I find them all really "dirty"... Don't you think? I don't know if it's with Oracle or MySQL but it's possible to do something like:
DROP COLUMN xxx CASCADE CONSTRAINTS
And it drops all related constraints... Or at least it automatically drops the constraints mapped to that column (at least CHECK constraints!)
Is there nothing like that in MSSQL?
We use the SQL DROP Table command to drop a table from the database. It completely removes the table structure and associated indexes, statistics, permissions, triggers and constraints.
Syntax. The syntax to drop a column in a table in MySQL (using the ALTER TABLE statement) is: ALTER TABLE table_name DROP COLUMN column_name; table_name.
Here is a script that will delete the column along with its default constraint. Replace MYTABLENAME
and MYCOLUMNNAME
appropriately.
declare @constraint_name sysname, @sql nvarchar(max) select @constraint_name = name from sys.default_constraints where parent_object_id = object_id('MYTABLENAME') AND type = 'D' AND parent_column_id = ( select column_id from sys.columns where object_id = object_id('MYTABLENAME') and name = 'MYCOLUMNNAME' ) set @sql = N'alter table MYTABLENAME drop constraint ' + @constraint_name exec sp_executesql @sql alter table MYTABLENAME drop column MYCOLUMNNAME go
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With