SysIndex - 黑白差异 is_unique 和 is_unique_constraint

Gai*_*ter 5 sql sql-server sql-server-2005 sql-server-2000 sql-server-2008

在 SQL Server 2008 上运行选择查询时,sys.indexes 为我提供了有关数据库索引定义的信息。

有 2 个字段 is_unique 和 is_unique_constraint。我不明白黑白它们的区别。

Joe*_*lli 3

希望这个简单的演示能让您更加清楚。表 X 上的索引将设置两个值,而表 Y 上的索引将仅设置 is_unique。

create table X (
    id int CONSTRAINT x_is_unique UNIQUE
)

create table Y (
    id int
)

create unique index y_is_unique on Y(id)

select name, is_unique, is_unique_constraint
    from sys.indexes
    where object_id in (object_id('X'), object_id('Y'))
        and name is not null

drop table X
drop table Y
Run Code Online (Sandbox Code Playgroud)