KB2498818 - CORRECCIÓN: Error 7359 al ejecutar una consulta en una función definida por el usuario o 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 3 Microsoft SQL Server 2005 Service Pack 4 SQL Server 2008 Service Pack 2 Microsoft SQL Server 2005 SQL Server 2008 SQL Server 2008 R2

Microsoft distribuye las correcciones de Microsoft SQL Server 2005, Microsoft SQL Server 2008 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 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

Tenga en cuenta el siguiente escenario:

  • 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.

  • Crea un sinónimo de una tabla en el servidor vinculado.

  • Crea una función definida por el usuario que usa el sinónimo o crea una vista que usa el sinónimo. A continuación, ejecute una consulta en la función definida por el usuario o en 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 del esquema de la tabla en el servidor vinculado. Por ejemplo, debe volver a generar el índice de la tabla en el servidor remoto para actualizar la versión del esquema de la tabla en el servidor vinculado.

  • Ejecuta otra consulta en la función definida por el usuario o en la vista.

En esta situación, recibe un mensaje de error similar al siguiente:

Nota

Servidor: Msj 7359, Número de nivel de nivel, Número de estado de estado, Número de línea de línea
El proveedor OLE DB "Nombre del proveedor" para el servidor vinculado "Nombre del servidor vinculado" notificó un cambio en la versión del esquema entre el tiempo de compilación ("Tiempo de compilación") y el tiempo de ejecución ("Tiempo de ejecución") para la tabla "Nombre de la tabla vinculada".

Nota El nombre del proveedor es un marcador de posición que representa el nombre del proveedor de OLE DB. Nombre de tabla vinculado 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 borra correctamente. Esto provoca que cambie la versión del esquema, ya que la función definida por el usuario o la vista se vuelve a compilar cuando se ejecuta la segunda consulta. Por tanto, se produce el error.

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 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

Para SQL Server 2005 SP3

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

960598 Compilaciones de SQL Server 2005 que se publicaron después de SQL Server 2005 SP3

Para SQL Server 2005 SP4

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

937137 Compilaciones de SQL Server 2005 que se publicaron después de SQL Server 2005 SP4

Para SQL Server 2008 SP1

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 SP1
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 SP1

Para SQL Server 2008 SP2

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

2402659 Compilaciones de SQL Server 2008 que se publicaron después de SQL Server 2008 SP2

Estado

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

Más información

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

Cómo usar Transact-SQL para crear un sinónimo