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

如何查找哪些外键引用表上的索引

单耘豪
2023-03-14
问题内容

我有一个非聚集索引要删除(它是聚集索引的副本)。但是,外键约束正在使用它。我希望能够确定哪个约束正在使用索引,因此我可以对其进行更新以使用主键索引。

当我尝试删除它时:

DROP INDEX [idx_duplicate] ON [dbo].[MyTable]

我收到一个错误:

不允许在索引’dbo.MyTable.idx_duplicate’上使用显式的DROP INDEX。它被用于FOREIGN KEY约束实施。

我尝试通过以下查询找到罪魁祸首,但没有运气:

SELECT name
FROM sys.foreign_keys
WHERE OBJECT_NAME (referenced_object_id) = 'idx_duplicate'

问题答案:

就像是

Select
    f.name,
    object_name(f.parent_object_id)
From
    sys.foreign_keys f
        inner join
    sys.indexes i
        on f.referenced_object_id = i.object_id and
           f.key_index_id = i.index_id
Where
    i.name = 'idx_duplicate' and
    i.object_id = object_id('[dbo].[MyTable]')


 类似资料:
  • 我创建了一个带有主键(UsersID、AccountsID)的帐户/用户表,如下所示。我是否应该为Users表添加索引?

  • 问题内容: 我对即将要做的索引编制感到有些困惑。 首先,我使用4列索引,如下所示: 索引名称-advanced_query 索引中将使用列-标题,类别1,类别2,类别3 索引代码 好的,这就是它的工作方式(据我了解): 标题 查询将使用索引。 cat_1 查询将使用索引。 cat_2 查询将使用索引。 cat_3 的查询将 不 使用索引。因此,我将为其创建一个不同的索引。 查询 标题cat_1 将

  • 我有两个表两个表名

  • 问题内容: 我们有很多罐子是在几年的时间里添加到项目中的,它们的用法在任何地方都没有记录。我想找出java或jsp文件中jar中任何类的引用。 现在,对于我们的新罐子,我们没有问题,因为我们使用Maven,它可以帮助我们更好地维护依赖关系等。但我正在尝试确定一些旧罐子 Eclipse或任何其他工具中有什么方法可以做到这一点? 问题答案: 我能想到的一种方式: 您可以使用Relief获取整个Java

  • 问题内容: 我知道索引 查找 比索引 扫描 更好,但是在SQL Server解释计划中它更可取:索引查找或键查找(在SQL Server 2000中为书签)? 请告诉我,他们没有再次更改SQL Server 2008的名称… 问题答案: 每次索引检索。 查找非常昂贵,因此它涵盖了索引,尤其是添加了INCLUDE子句以使索引更好。 举例来说,假设您只希望一行,那么在查找后进行查找可能比尝试覆盖查询要

  • 我试图通过搜索来查找。有人知道怎么做吗? 我看到有但我想要类似python的。