Tsql T-SQL:删除表级联约束等效?

Tsql T-SQL:删除表级联约束等效?,tsql,cascade,Tsql,Cascade,在oracle中,我可以发布一个DROP表。。。级联约束,它不会抱怨FKs等 在T-SQL中是否有等效项?否,在SSMS中,右键单击表格,然后选择“脚本表格为”,然后选择“拖放到”,然后选择“新建窗口”、“文件…”或“剪贴板”,它将生成一个脚本,其中将包含所有必要的FKs拖放等。对于希望得到更普遍适用答案的人来说 这将找到约束,删除它,然后删除列 感谢并投票给Tim Lentine作为开始 Declare @sql VarChar(255) Declare @tableName Varchar(

在oracle中,我可以发布一个DROP表。。。级联约束,它不会抱怨FKs等


在T-SQL中是否有等效项?

否,在SSMS中,右键单击表格,然后选择“脚本表格为”,然后选择“拖放到”,然后选择“新建窗口”、“文件…”或“剪贴板”,它将生成一个脚本,其中将包含所有必要的FKs拖放等。

对于希望得到更普遍适用答案的人来说

这将找到约束,删除它,然后删除列

感谢并投票给Tim Lentine作为开始

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

只生成了“drop table[table]”。您必须确保在选项中启用脚本依赖元素,然后它才能工作。如果您需要生成其他人可以使用的脚本,这也是一个不可行的解决方案,因为无法保证约束名称在多个系统中是相同的。