Recibo el siguiente error al intentar crear un índice agrupado
La instrucción se ha terminado.
Msg 596, Nivel 21, Estado 1, Línea 0
No se puede continuar la ejecución porque la sesión está en estado de interrupción.Mensaje 0, Nivel 20, Estado 0, Línea 0
Se produjo un error grave en el comando actual. Los resultados, si los hay, deben descartarse.
El índice es:
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
Estoy usando Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64) Standard Edition (64-bit) en Windows NT 6.3 (Build 9600:)
he corrido
DBCC CheckDB ('concept-test') WITH NO_INFOMSGS, ALL_ERRORMSGS
y no encontró problemas
Me temo que mi base de datos está dañada porque recibo este error. ¿Cómo corrijo mi problema y obtengo este índice sobre la mesa?
sql-server
sql-server-2012
user2904235
fuente
fuente
Respuestas:
Solo un puntero re: SQL Server 2017 (donde estaba detectando este error) y algunas versiones de 2016 para potencialmente ahorrar tiempo a otras:
Antes de SQL Server 2017 CU8 (también 2016 SP1 CU9 y 2016 SP2 CU1), había un problema en el que las tablas particionadas con estadísticas incrementales generarían este error si la operación DML causaba una actualización automática de estadísticas.
La página mínima de KB está aquí:
https://support.microsoft.com/en-us/help/4163478/fix-access-violation-when-incremental-statistics-automatically-updated
Instalar una CU posterior a las mencionadas anteriormente soluciona el problema.
fuente
Esto puede ser causado por la corrupción del índice,
La mejor manera de gestionar esto es soltar el índice antiguo que está dañado.
Y que Ejecutar la consulta en preguntas, debería funcionar bien si todos los registros son únicos. en las columnas dadas
fuente
En una base de datos configurada para Grupos de disponibilidad siempre activa, también puede encontrar este comportamiento si el Grupo de disponibilidad está en modo SINCRÓNICO y las secundarias se han desconectado o están suspendidas. Este es un efecto secundario experimentado por los servidores de aplicaciones. Gracias,
fuente
Algo que he encontrado involuntariamente: cuando deshabilita / reconstruye índices en una vista indexada, obtendrá este mismo error si intenta reconstruir uno o más de los índices no agrupados antes de construir el grupo o usar RECUPERAR TODO.
fuente
Siempre recibo este error cuando tengo una consulta en ejecución, usando un oyente Always On AG, usando una de las bases de datos AG y hay una conmutación por error:
.Net SqlClient Data Provider: Msg 596, Level 21, State 1, Line 0 No se puede continuar la ejecución porque la sesión está en estado de interrupción. .Net SqlClient Data Provider: Msg 0, Level 20, State 0, Line 0 Se produjo un error grave en el comando actual. Los resultados, si los hay, deben descartarse.
Muy fácil de reproducir! Por supuesto, puede haber otras razones, pero esta es la única instancia en particular que recibo este tipo de error ...
fuente
Puedo reproducir este problema en un programa C # bastante pequeño que usa conexiones asincrónicas, pero no estoy seguro al 100% de por qué. Aquí está mi programa de repro en caso de que otros quieran probarlo. Sospecho que hay una serie de cosas que tienen que alinearse perfectamente para que esto suceda:
fuente