SQL Server 中非聚集索引能否转化为覆盖索引?

ige*_*elr -2 sql-server nonclustered-index covering-index

我有一个包含一列的非聚集索引。现在我想改变索引并添加额外的两列作为覆盖列。是否可以?如果是,那么请您提供 T-SQL 脚本。

Den*_*kin 6

你不能使用ALTER INDEX命令来做到这一点。但是您可以使用 DROP-CREATE 命令或 DROP_EXISTING 选项重新创建索引:

DROP INDEX [IDX_Name] ON [dbo].[YourTable]
GO

CREATE NONCLUSTERED INDEX [IDX_Name] ON [dbo].[YourTable]
(
    [Field1] ASC
) INCLUDE ([Field2],[Field3])
GO
Run Code Online (Sandbox Code Playgroud)

或者

CREATE NONCLUSTERED INDEX [IDX_Name] ON [dbo].[YourTable]
(
    [Field1] ASC
) INCLUDE ([Field2],[Field3]) WITH (DROP_EXISTING = ON)
GO
Run Code Online (Sandbox Code Playgroud)