KB2519358 - CORRECCIÓN: Error "El valor entero está fuera del rango" cuando se pasa un valor bigint como argumento last_sync_version de la función CHANGETABLE en SQL Server 2008 o en SQL Server 2008 R2

Se aplica a
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express

Microsoft distribuye las correcciones de Microsoft SQL Server 2008 Service Pack 1 (SP1) y Microsoft SQL Server 2008 R2 como un archivo descargable. Dado que las correcciones son acumulativas, cada nueva versión contiene todas las revisiones y correcciones de seguridad que se incluyeron con la versión anterior de correcciones de SQL Server 2008 SP1 y SOL Server 2008 R2.

Síntomas

Tenga en cuenta el siguiente escenario:

  • Habilita el seguimiento de cambios en una tabla en SQL Server 2008 o en SQL Server 2008 R2.

  • Ejecuta una consulta que usa la función CHANGETABLE junto con el argumento last_sync_version para devolver información de seguimiento de los cambios que se produjeron en la tabla.

  • Se pasa un valor bigint como argumento last_sync_version.

Por ejemplo, ejecuta la siguiente consulta después de habilitar el seguimiento de cambios en una tabla:

SELECT * FROM CHANGETABLE(changes dbo.t1, 2222222222) as ct

En este escenario, la ejecución de la consulta falla y recibe la siguiente información:

Nota

Mensaje 1080, Nivel 15, Estado 1, Línea 1
El valor entero el valor bigint está fuera del rango.

Notas

  • El tipo del argumento last_sync_version se define como bigint. Por lo tanto, se espera que la consulta se ejecute correctamente.
  • El valor bigint es un marcador de posición que representa el valor bigint que se pasa como argumento last_sync_version.

Resolución

Información sobre la actualización acumulativa

SQL Server 2008 R2 Service Pack 1

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

2544793 paquete de actualización acumulativa 1 para SQL Server 2008 R2 Service Pack 1Nota Dado que las compilaciones son acumulativas, cada nueva corrección contiene todas las revisiones y correcciones de seguridad que se incluyeron con la versión de corrección anterior de SQL Server 2008 R2. Recomendamos que se plantee la posibilidad de aplicar la versión de corrección más reciente que contiene esta revisión. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2567616 Compilaciones de SQL Server 2008 R2 que se publicaron después de SQL Server 2008 R2 Service Pack 1

SQL Server 2008 Service Pack 2

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

2527180 paquete de actualización acumulativa 4 para SQL Server 2008 Service Pack 2Nota Dado que las compilaciones son acumulativas, cada nueva corrección contiene todas las revisiones y correcciones de seguridad que se incluyeron con la versión de corrección anterior de SQL Server 2008. Microsoft recomienda que se plantee la posibilidad de aplicar la versión de corrección más reciente que contenga esta revisión. Para 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 publicaron después de SQL Server 2008 Service Pack 2 Se crean revisiones de Microsoft SQL Server 2008 para SQL Server Service Pack específicos. 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 revisión que se proporcione en un Service Pack de SQL Server se incluye en el siguiente Service Pack de SQL Server.

SQL Server 2008 R2

La corrección de este problema se publicó por primera vez en la actualización acumulativa 7. Para obtener más información acerca de 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:

2507770 paquete de actualización acumulativa 7 para SQL Server 2008 R2 Nota Dado que las compilaciones son acumulativas, cada nueva corrección contiene todas las revisiones y correcciones de seguridad que se incluyeron con la versión de corrección anterior de SQL Server 2008 R2. Recomendamos que se plantee la posibilidad de aplicar la versión de corrección más reciente que contiene esta revisión. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

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

2497673 paquete de actualización acumulativa 13 para SQL Server 2008 Service Pack 1
Nota: Dado que las compilaciones son acumulativas, cada nueva corrección contiene todas las revisiones y correcciones de seguridad que se incluyeron con la versión de corrección anterior de SQL Server 2008 SP1. Recomendamos que se plantee la posibilidad de aplicar la versión de corrección más reciente que contiene esta revisión. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

970365 Compilaciones de SQL Server 2008 que se publicaron después de SQL Server 2008 Service Pack 1

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Solución alternativa

Para solucionar este problema, cree una variable de tipo bigint y, a continuación, pásela como argumento last_sync_version de la función CHANGETABLE. Por ejemplo, puede ejecutar correctamente la consulta siguiente:

DECLARE @v3 bigint = 2222222222
SELECT * FROM CHANGETABLE(changes dbo.t1, @v3 ) as ct

Más información

Para obtener más información acerca de la función CHANGETABLE para Transact-SQL, visite el siguiente sitio web de Microsoft Development Network (MSDN):

Información general acerca de la función CHANGETABLE para Transact-SQL