KB2498818: error 7359 cuando se ejecuta una consulta en una función definida por el usuario o en una vista que usa un sinónimo en un servidor vinculado en SQL Server 2005, SQL Server 2008 o SQL Server 2008 R2

Se aplica a: Microsoft SQL Server 2005 Service Pack 3Microsoft SQL Server 2005 Service Pack 4Microsoft SQL Server 2008 Service Pack 2

Microsoft distribuye las soluciones Microsoft SQL Server 2005, 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 2005, Microsoft SQL Server 2008 y SQL Server 2008 R2.La corrección que se describe en este artículo está disponible para las siguientes versiones de SQL Server:
  • Microsoft SQL Server 2005 Service Pack 3 (SP3)
  • Microsoft SQL Server 2005 Service Pack 4 (SP4)
  • Microsoft SQL Server 2008 Service Pack 1 (SP1)
  • Microsoft SQL Server 2008 Service Pack 2 (SP2)

Síntomas


Imagine la siguiente situación:
  • Crea un servidor vinculado en un equipo que ejecuta Microsoft SQL Server 2005, Microsoft SQL Server 2008 o Microsoft SQL Server 2008 R2. El servidor vinculado apunta a un origen de datos OLE DB en un servidor remoto.
  • Se crea un sinónimo de una tabla en el servidor vinculado.
  • Cree una función definida por el usuario que use el sinónimo o cree una vista que use el sinónimo. Después, ejecuta una consulta para la función definida por el usuario o la vista.Nota Al ejecutar la consulta, se almacena en caché un plan de ejecución.
  • Realiza una operación en un servidor remoto para actualizar la versión de esquema de la tabla en el servidor vinculado. Por ejemplo, puede volver a crear el índice de la tabla en el servidor remoto para actualizar la versión de esquema de la tabla en el servidor vinculado.
  • Ejecute otra consulta para la función definida por el usuario o la vista.
En esta situación, recibe un mensaje de error similar al siguiente:
Servidor: mensaje 7359, número de nivelde nivel, número de estadode línea, número de líneade línea el proveedor OLE DB "nombre del proveedor" del servidor vinculado "nombre del servidor vinculado" informó de un cambio en la versión de esquema entre el tiempo de compilación ("tiempo de compilación")y el tiempode ejecución ("tiempo de ejecución") de la tabla
Nombre del proveedor de notas es un marcador de posición que representa el nombre del proveedor de OLE DB. Nombre de tabla vinculada es un marcador de posición que representa el nombre de la tabla que se encuentra en el servidor vinculado.

Causa


Este problema se produce porque el plan de ejecución existente no se borró correctamente. Esto hace que la versión del esquema cambie, porque la función definida por el usuario o la vista se vuelve a compilar cuando se ejecuta la segunda consulta. Por lo tanto, el error se produce.

Resolución


Información sobre la actualización acumulativa

Service Pack 1 de SQL Server 2008 R2

La corrección para 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 actualización acumulativa, 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 1
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:
2567616 Las compilaciones de SQL Server 2008 R2 que se publicaron después de que se publicó SQL Server 2008 R2 Service Pack 1

SQL Server 2008 R2

La corrección para este problema se publicó por primera vez en la actualización acumulativa 7. 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:
2507770 Paquete de actualización acumulativa 7 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

Para SQL Server 2005 SP3

La corrección para este problema se publicó por primera vez en la actualización acumulativa 15. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2005 SP3, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2507766 Paquete de actualización acumulativa 15 para SQL Server 2005 SP3
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 2005 SP3. 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:
960598 Las compilaciones de SQL Server 2005 que se lanzaron después de publicar el SP3 de SQL Server 2005

Para SQL Server 2005 SP4

La corrección para este problema se publicó por primera vez en la actualización acumulativa 3. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2005 SP4, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2507769 Paquete de actualización acumulativa 3 para SQL Server 2005 SP4
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad que se incluían en la versión anterior de corrección de SQL Server 2005 SP4. 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:
937137 Las compilaciones de SQL Server 2005 que se lanzaron después del lanzamiento de SQL Server 2005 SP4

Para SQL Server 2008 SP1

La corrección para este problema se publicó por primera vez en la actualización acumulativa 13. Para obtener más información sobre 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 SP1
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 SP1. 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:
970365 Las compilaciones de SQL Server 2008 que se lanzaron después del lanzamiento de SQL Server 2008 SP1

Para SQL Server 2008 SP2

La corrección para este problema se publicó por primera vez en la actualización acumulativa 3. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2008 SP2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2498535 Paquete de actualización acumulativa 3 para SQL Server 2008 SP2
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad que se incluían en la versión anterior de corrección de SQL Server 2008 SP2. 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 del lanzamiento de SQL Server 2008 SP2

Estado


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

Más información


Para obtener más información sobre cómo usar Transact-SQL para crear un sinónimo, visite el siguiente sitio web de Microsoft Developer Network (MSDN):