在最新版本中,您可以创建内联索引。如下
DECLARE @t TABLE (
PK int IDENTITY(1,1) PRIMARY KEY CLUSTERED,
Col1 int,
Col2 int,
index ix (Col1 ASC, Col2 ASC)
)
然而,它被标记为 SQL Server 2008。在那里你can按如下方式创建非聚集索引。
DECLARE @t TABLE (
PK INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
Col1 INT,
Col2 INT,
UNIQUE (Col1, Col2, PK))
如果意图是这样的话Col1, Col2
本身是唯一的然后删除PK
从列列表中。
尽管从表面上看,这似乎在 (PK
)索引结构将与仅在其上创建非唯一索引相同Col1, Col2
on a #temp
table.
CREATE TABLE #T (
PK INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
Col1 INT,
Col2 INT)
/*PK added in to end of key anyway*/
CREATE NONCLUSTERED INDEX ix ON #T(Col1, Col2)
对于非唯一非聚集索引,SQL Server 始终将 CI 键隐式添加到 NCI 键中。这只是明确地表明了这一点。
参见卡伦·德莱尼有关非聚集索引键的更多信息 http://sqlblog.com/blogs/kalen_delaney/archive/2010/03/07/more-about-nonclustered-index-keys.aspx