sql - 为什么允许我有两个同名索引?

标签 sql sql-server visual-studio-2010 tsql indexing

我有一个大型 .sqlproj 项目。在一个 .sql 文件中,我有一个表定义:

CREATE TABLE [dbo].[TableOne] (
    [ColumnName] UNIQUEIDENTIFIER NULL
);
GO
CREATE UNIQUE CLUSTERED INDEX [TableOneIndex]
  ON [dbo].[TableOne]([ColumnName] ASC;

在另一个 .sql 文件中,我有另一个表定义:

CREATE TABLE [dbo].[TableTwo] (
    [ColumnName] UNIQUEIDENTIFIER NULL
);
GO
CREATE UNIQUE CLUSTERED INDEX [TableOneIndex]
  ON [dbo].[TableTwo]([ColumnName] ASC;

请注意,这两个索引都称为 TableOneIndex。然而该项目构建良好并部署良好。

这怎么可能合法?

最佳答案

CREATE INDEX规范解释了这一点:

index_name Is the name of the index. Index names must be unique within a table or view but do not have to be unique within a database. Index names must follow the rules of identifiers.

关于sql - 为什么允许我有两个同名索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16646647/

相关文章:

mysql - 如何求和 MySQL 中的两个第一个字符?

sql - 需要暂时将 Text 字段转换为 Varchar,以便我可以传递给存储过程

html - 将html和CSS放入数据库mmsql中

visual-studio-2010 - 更改从Visual Studio 2010生成的exe文件的图标

C语言-Windows已触发断点

带有两个表的 SQL 递归 CTE

Mysql如何获取给定ID的父级和所有子级?

sql - 什么是涵盖索引?

sql - 比较两个数据库

c++ - Visual C++ 编译器优化