唯一索引不一定在 table_constraints 视图中:那么如何使用 information_schema 找到它们?

问题描述 投票:0回答:1

此查询不会找到未明确与约束结合使用的唯一索引:

select TC.Constraint_Name, CC.Column_Name 
from information_schema.table_constraints TC
inner join information_schema.constraint_column_usage CC
on TC.Constraint_Name = CC.Constraint_Name
where TC.constraint_type = 'Unique'
order by TC.Constraint_Name

那么如何使用 INFORMATION_SCHEMA

 找到如下所示的隐含唯一约束?

create unique constraint PipelineSummary_CorrelationId on bronze.AggregatedPipelineSummary (CorrelationId);
    
sql sql-server information-schema unique-index
1个回答
0
投票
INFORMATION_SCHEMA 视图提供数据库目录的标准简化视图。它仅限于显示数据库的“逻辑”视图,但不会显示数据库的许多特定于 SQL Server 的方面。

因此请使用 SQL Server 的本机目录视图,此处为 sys.indexes 查询sys.indexes,eg

select o.name table_name, i.name index_name, i.is_unique_constraint from sys.objects o join sys.indexes i on o.object_id = i.object_id where is_unique=1 and o.is_ms_shipped = 0
    
© www.soinside.com 2019 - 2024. All rights reserved.