当前位置: 首页 > 面试题库 >

删除未命名的约束

戎劲
2023-03-14
问题内容

我创建了一些没有显式名称的外键。

然后我发现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


 类似资料:
  • 问题内容: 我有一个来自AG列的数据文件,如下所示,但是当我用它读取数据时,它毫无理由地在末尾打印了一个额外的列。 我已经多次查看过我的数据文件,但是其他任何列中都没有多余的数据。我在阅读时应如何删除此多余的列?谢谢 问题答案: df = df.loc[:, ~df.columns.str.contains(‘^Unnamed’)] 如果CSV文件的第一列具有索引值,则可以执行以下操作:

  • 问题内容: 我喜欢ElementTree解析xml的方式,特别是Xpath功能。我从带有嵌套标签的应用程序以xml输出。 我想按名称访问此标签,而不指定名称空间,这可能吗?例如: 代替: 问题答案: 至少使用lxml2,可以稍微减少此开销:

  • 为了在跨API开发中向开发者提供一致的开发体验,所有的命名应该保证: 简单 直观 一致 这适用于接口、资源、集合、方法以及消息的命名。 因为很多开发者并非以英语作为母语,所以命名约定的目标之一是确保大多数开发者可以更容易理解 API。对于方法和资源,我们鼓励使用简单、直观和一致的单词来命名。 API 中的命名应该使用正确的美式英语。例如,使用美式英语的 license 而非英式英语的 licenc

  • 在本节,我们不会讨论适用于大规模和可维护的最佳 CSS 命名方案,因为这不仅仅超过了个人的能力范围,也不是一个Sass样式指南可以解决的问题。我个人推荐遵从 CSS Guidelines 的建议。 良好的命名对保持整体代码的一致性和可读性非常重要,在 Sass 中可以命名的地方如下: 变量; 函数; 混合宏。 由于 Sass 占位符遵循和类名相同的命名模式,因此被视为常规的 CSS 选择器,也就在

  • 函数名 小技巧 使用小写字母,并用下划线分隔单词。使用双冒号 :: 分隔库。函数名之后必须有圆括号。关键词 function 是可选的,但必须在一个项目中保持一致。 如果你正在写单个函数,请用小写字母来命名,并用下划线分隔单词。如果你正在写一个包,使用双冒号 :: 来分隔包名。大括号必须和函数名位于同一行(就像在Google的其他语言一样),并且函数名和圆括号之间没有空格。 # Single fu

  • 问题内容: 我正在使用带有NEST的C#.NET应用程序来创建索引。 我创建了一个Elasticsearch索引,客户可以查询该索引,称为index_1。然后,我使用应用程序的不同实例构建索引的另一个版本,并将其称为index_1_temp。 我将index_1_temp重命名为index_1然后删除原始index_1的最安全方法是什么? 我知道ES具有别名,但是我不确定如何将其用于此任务 编辑: