T-SQL: DROP Table cascade constraints equivalent?

2020-07-09 09:44发布

In oracle, I can issue a DROP TABLE ... cascade constraints and it won't complain about FKs, etc.

Is there an equivalent in T-SQL?

标签: tsql cascade
2条回答
够拽才男人
2楼-- · 2020-07-09 10:33

For those who got here in the hope of a more generally applicable answer

This will find the constraint, drop it, and then the column

Thanks and a vote to Tim Lentine How to find the name of a default constraint for the start.

Declare @sql VarChar(255)
Declare @tableName Varchar(255)
Declare @columnName VarChar(255)
Select @tableName = 'MyTableName'
Select @columnName = 'MyColumnName'
select @sql = o.[name] from sysobjects o 
inner join syscolumns c
on o.id = c.cdefault
inner join sysobjects t
on c.id = t.id
where o.xtype = 'd'
and t.name = @tableName
and c.name = @columnName

if @sql is not null
begin
  select @sql = 'Alter Table ' + @tableName + ' Drop Constraint ' + @sql + ' Alter Table ' + @tablename + ' Drop Column ' + @columnName
  exec(@sql)
end
查看更多
Animai°情兽
3楼-- · 2020-07-09 10:40

NO, IN SSMS right click on the table, and select "script table as" then "drop to", then "new window", "file..." or "clipboard" and it will produce a script that will include all the necessary drops of FKs etc.

查看更多
登录 后发表回答