今天我在 SSMS 中运行了一个查询,它给了我一个关于缺少索引的提示。
但是创建索引的语句让我感到困惑,有一个名称 Name of Missing Index 很清楚,但名称部分也有我不明白的 ,sysname

我一直在研究这个 https://docs.microsoft.com/en-us/sql/t-sql/statements/create-index-transact-sql 但我找不到关于这个创建语法的解释。

所以在 [<Name of Missing Index, sysname,>] 部分,我可以只替换 Name of Missing Index 并保留值 sysname 还是我必须在那里放其他东西?

我正在使用 sql server 2014
这是 SSMS 创建的结果

/*
Missing Index Details from SQLQuery1.sql - SQLSERVER\GTT_192.GTT_Test (sa (70))
The Query Processor estimates that implementing the following index could improve the query cost by 43.2521%.
*/

/*
USE [GTT_Test]
GO
CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
ON [dbo].[tblRitRouteDetail] ([DistanceToll])
INCLUDE ([RitID])
GO
*/

如果我像这样创建索引有什么区别:
CREATE NONCLUSTERED INDEX IX_RitRouteDetail_DistanceToll
  ON dbo.tblRitRouteDetail (DistanceToll)
  INCLUDE (RitID)

最佳答案

sysname 只是它期望的 SQL 数据类型。它是 type.sysname,所以本质上该命令是说请创建一个索引,缺少的索引的名称将是 sysname 类型。

编辑
要回答最初的问题,如果您以一种或另一种方式创建索引有什么区别。没有区别,它们都将以完全相同的方式创建您的索引。

关于sql-server - 在这个建议的 create index 语句中 sysname 是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46076747/

10-11 03:32