无法继续执行,因为会话处于终止状态。在构建聚集索引时

use*_*235 11 sql-server sql-server-2012

尝试创建聚集索引时出现以下错误

该语句已终止。
消息 596,级别 21,状态 1,第 0 行
无法继续执行,因为会话处于终止状态。

Msg 0, Level 20, State 0, Line 0
当前命令发生严重错误。结果,如果有的话,应该被丢弃。

指数是:

BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT

BEGIN TRANSACTION
GO

CREATE CLUSTERED INDEX IX_CO_DES_INPUT 
ON dbo.CO_DES_INPUT(DESIGN_ID, PRODUCT_INPUT_NUM, INPUT_NAME)
          WITH(STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, 
               ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

ALTER TABLE dbo.CO_DES_INPUT 
  SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
Run Code Online (Sandbox Code Playgroud)

我在 Windows NT 6.3 (Build 9600:) 上使用 Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64) 标准版(64 位)

我跑了

DBCC CheckDB ('concept-test') WITH NO_INFOMSGS, ALL_ERRORMSGS  
Run Code Online (Sandbox Code Playgroud)

它没有发现任何问题

我担心我的数据库已损坏,因为我收到此错误。如何纠正我的问题并将此索引放在桌面上?

Mar*_*miK 3

这可能是由索引损坏引起的,

管理此问题的最佳方法是删除已损坏的旧索引。

DROP INDEX dbo.CO_DES_INPUT.IX_CO_DES_INPUT 
Run Code Online (Sandbox Code Playgroud)

与在问题中运行查询相比,如果所有记录都是唯一的,它应该可以正常工作。在给定的列中。