sql – 删除未命名的约束

前端之家收集整理的这篇文章主要介绍了sql – 删除未命名的约束前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
作为一个菜鸟,我创建了一些没有明确名称的外键.

然后我创建了sql生成的疯狂名字,如FK__Machines__IdArt__760D22A7.猜测它们将在不同的服务器上以不同的名称生成.

有没有什么好的功能删除未命名的FK约束作为参数传递表和相关的字段?

解决方法

没有内置的过程来完成此操作,但是您可以使用information_schema视图中的信息构建自己的过程.

基于表的示例

Create Proc dropFK(@TableName sysname)
as
Begin

Declare @FK sysname
Declare @sql nvarchar(4000)
Declare crsFK cursor for

select tu.Constraint_Name from 
information_schema.constraint_table_usage TU
LEFT JOIN SYSOBJECTS SO 
ON TU.Constraint_NAME = SO.NAME
where xtype = 'F'
and Table_Name = @TableName
open crsFK
fetch next from crsFK into @FK
While (@@Fetch_Status = 0)
Begin
    Set @sql = 'Alter table ' + @TableName + ' Drop Constraint ' + @FK
    Print 'Dropping ' + @FK
    exec sp_executesql  @sql
    fetch next from crsFK into @FK
End
Close crsFK
Deallocate crsFK
End
原文链接:https://www.f2er.com/mssql/75015.html

猜你在找的MsSQL相关文章