Síntomas
Cuando realiza las operaciones de DDL, como crear índice o truncar tabla en SQL Server 2016, es posible que las operaciones estén bloqueadas si hay otra transacción DDL ejecutándose en la misma base de datos.
Resolución
El problema se solucionó por primera vez en la siguiente actualización acumulativa de SQL Server:
Cada actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de seguridad incluidas en la actualización acumulativa anterior. Le recomendamos que descargue e instale las últimas actualizaciones acumulativas de SQL Server:
Más información
Cuando un DDL crea o elimina una tabla o un índice, debe insertar o eliminar el identificador de conjunto de filas de la tabla o el índice de sysrowsets, para el cual necesita mantener un bloqueo X de nivel de fila en la entrada. Cuando se hace en una transacción, se mantiene el bloqueo X durante el período de tiempo de la transacción. Cuando la tupla detecta búferes de eliminación vaciables, necesita iterar sobre sysrowsets para descubrir las tablas o índices existentes. Para leer cada fila de sysrowsets debe mantener el bloqueo de nivel de fila en la entrada que lee actualmente. El proceso de descubrimiento se detiene cuando el Movedor de tupla encuentra el primer conjunto de filas en el que puede trabajar. En este momento, el Movedor de la tupla hará el trabajo real de vaciar el búfer de eliminación, pero para asegurarnos de que el conjunto de filas descubierto siga siendo válido, retendrá un bloqueo SCH-S en todos los conjuntos de filas que evaluó durante el proceso de descubrimiento hasta que termine su trabajo.Sysrowsets se ordena por el identificador del conjunto de filas, por lo que puede suceder que el transportador de tupla haya recorrido varios conjuntos de filas existentes en los que no tiene ninguna acción, pero seguirá teniendo el bloqueo de SCH-S y llegará a una entrada de Sysrowsets para la que no se puede adquirir el bloqueo de nivel de fila, porque en este momento lo está modificando una transacción de En este punto, DDLs implican que los cambios del identificador de conjunto de filas se bloquean tras los bloqueos SCH-S de la tupla.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".
Referencias
Obtenga más información sobre la terminología que Microsoft usa para describir las actualizaciones de software.