KB2380361: mensaje de error al ejecutar el procedimiento almacenado "sp_createstats" en SQL Server 2008 o en SQL Server 2008 R2 si la tabla contiene una columna calculada no determinista

Microsoft distribuye las soluciones Microsoft SQL Server 2008 y Microsoft SQL Server 2008 R2 como un archivo que se puede descargar. Debido a que las correcciones son acumulativas, cada versión nueva contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de SQL Server 2008 o SQL Server 2008 R2.

Síntomas

Imagine la siguiente situación:

  • Se crea una tabla que contiene una columna calculada no determinista en un SQL Server 2008 o una base de datos de SQL Server 2008 R2. Por ejemplo, ejecute la instrucción siguiente para crear una tabla que contenga una columna calculada no determinista: CREATE TABLE [dbo].[t1]( [DateOfBirth] DATE, [Age] AS (FLOOR(DATEDIFF(DAY,[DateOfBirth],GETDATE())/(365.0))))GO Nota: En esta instrucción, la función GETDATE es no determinista.

  • Ejecute el procedimiento almacenado sp_createstats para mejorar el rendimiento.Nota El sp_createstats procedimiento almacenado crea estadísticas de una columna para cualquier columna elegible de la base de datos.

En este escenario, se produce un error en el sp_createstats procedimiento almacenado. Por lo tanto, es posible que no se hayan creado las estadísticas de algunas columnas elegibles. Además, aparece un mensaje de error similar al siguiente:

MSG 2729, LEVEL 16, State 1, line 1Column ' Age ' de la tabla ' DBO. T1 ' no se puede usar en un índice o estadísticas o como una clave de partición porque no es determinista.

Causa

Este problema se produce porque el sp_createstats procedimiento almacenado no omite las columnas calculadas no deterministas.

Resolución

Información sobre la actualización acumulativa

Service Pack 1 de SQL Server 2008

La corrección para este problema se publicó por primera vez en la actualización acumulativa 11 para SQL Server 2008 Service Pack 1. Para obtener más información acerca de este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2413738 Paquete de actualización acumulativa 11 para SQL Server 2008 Service Pack 1Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008. Microsoft recomienda que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

970365 Las compilaciones de SQL Server 2008 que se lanzaron después de publicar SQL Server 2008 Service Pack 1Los Hotfix 2008 de Microsoft SQL Server se crean para determinados Service Packs de SQL Server. Debe aplicar una revisión de SQL Server 2008 Service Pack 1 a una instalación de SQL Server 2008 Service Pack 1. De forma predeterminada, cualquier Hotfix proporcionado en un Service Pack de SQL Server se incluye en el siguiente Service Pack de SQL Server.

Service Pack 2 de SQL Server 2008

La corrección para este problema se publicó por primera vez en la actualización acumulativa 1 para SQL Server 2008 Service Pack 2. Para obtener más información acerca de este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2289254 Actualización acumulativa 1 para SQL Server 2008 Service Pack 2Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2402659 Las compilaciones de SQL Server 2008 que se lanzaron después de que se publicó SQL Server 2008 Service Pack 2

Service Pack 2 de SQL Server 2008

La corrección para este problema se publicó por primera vez en la actualización acumulativa 2 para SQL Server 2008 Service Pack 2. Para obtener más información acerca de este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2467239 Paquete de actualización acumulativa 2 para SQL Server 2008 Service Pack 2Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008. Microsoft recomienda que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2402659 Las compilaciones de SQL Server 2008 que se lanzaron después de que se publicó SQL Server 2008 Service Pack 2 Los Hotfix 2008 de Microsoft SQL Server se crean para determinados Service Packs de SQL Server. Debe aplicar una revisión de SQL Server 2008 Service Pack 2 a una instalación de SQL Server 2008 Service Pack 2. De forma predeterminada, cualquier Hotfix proporcionado en un Service Pack de SQL Server se incluye en el siguiente Service Pack de SQL Server.

SQL Server 2008 R2

La corrección para este problema se publicó por primera vez en la actualización acumulativa 4. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2008 R2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2345451 Paquete de actualización acumulativa 4 para SQL Server 2008 R2 Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008 R2. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

981356 Las compilaciones de SQL Server 2008 R2 que se lanzaron después de publicar SQL Server 2008 R2

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".

Referencias

Para obtener más información sobre las funciones deterministas y no deterministas, visite el siguiente sitio web de Microsoft Developer Network (MSDN):

Información general sobre las funciones deterministas y no deterministasPara obtener más información sobre el sp_createstats procedimiento almacenado, visite el siguiente sitio web de MSDN:

Información general sobre el procedimiento almacenado de Transact-SQL "sp_createstats"Para obtener más información acerca de las columnas calculadas, visite el siguiente sitio web de MSDN:

Información general acerca de las columnas calculadasPara obtener más información sobre el modelo de mantenimiento incremental para SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

935897 Un modelo de servicio incremental disponible en el equipo de SQL Server para ofrecer revisiones para problemas detectadosPara obtener más información sobre el esquema de nomenclatura de las actualizaciones de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

822499Nuevo esquema de nomenclatura para los paquetes de actualización de software de Microsoft SQL ServerPara obtener más información acerca de la terminología de actualizaciones de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

824684 Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft

¿Necesita más ayuda?

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Unirse a Microsoft Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×