SQL Server:创建非聚集索引而不为其指定名称

Mad*_*ddy 4 sql-server indexing alter-table clustered-index non-clustered-index

我使用 SQL Server 2008。

我正在尝试在我的表上创建非聚集索引。我想检查是否存在一种方法可以在不给索引命名的情况下创建它。

例如

CREATE TABLE #mytable (Date_ datetime NOT NULL, ID_ varchar(10) NOT NULL, Value_)
Run Code Online (Sandbox Code Playgroud)

当我向该表添加 PK 时,我没有指定该密钥的名称。例如

ALTER TABLE #mytable ADD PRIMARY KEY CLUSTERED (Date_ ASC, ID_ ASC)
Run Code Online (Sandbox Code Playgroud)

是否可以执行类似的操作来创建非聚集索引而不指定名称?

例如

ALTER TABLE #mytable ADD NONCLUSTERED INDEX (Date_, Value_)   -- FAILS!!!
Run Code Online (Sandbox Code Playgroud)

我知道的唯一命令是

CREATE NONCLUSTERED INDEX *keyname* ON #mytable (Date_, Value_)  
Run Code Online (Sandbox Code Playgroud)

小智 7

创建临时表后,使用 guid 作为索引名称执行动态续集

声明 @NewId VARCHAR(64) = REPLACE(NEWID(),'-','');

EXEC('创建索引 IX_'+@NewId+' ON #Table (ColA,ColB) INCLUDE (ColZ)');