我有一个大型 .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/