REVISIÓN: Se producen varios problemas al utilizar un servidor vinculado que fue creado por el proveedor de SQL Native Client en SQL Server 2008

Se aplica a: SQL Server 2008 DeveloperSQL Server 2008 EnterpriseSQL Server 2008 Standard

Microsoft distribuye correcciones de Microsoft SQL Server 2008 como un archivo descargable. Como las revisiones son acumulativas, cada versión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2008.

Síntomas


En un equipo que ejecuta Microsoft SQL Server 2008, experimenta uno o varios de los siguientes problemas al crear un servidor vinculado mediante el proveedor de SQL Native Client (Sqlncli.dll).

Nota: Estos problemas también ocurren en Microsoft SQL Server 2005 Service Pack 3 (SP3). Sin embargo, la revisión de este artículo no se aplica a SQL Server 2005 SP3.

Problema 1

Imagine el siguiente escenario:
  • En SQL Server Management Studio, abra la ventana nuevo servidor vinculado y crear un servidor vinculado mediante una de las siguientes configuraciones:
    • Proveedor de SQL Native Client con el tipo de servidor como SQL Server
    • Proveedor de SQL Native Client (no SQL Native cliente 10) con el tipo de servidor como otro origen de datos
    • Proveedor Microsoft OLE DB para SQL Server con el tipo de servidor como otro origen de datos
  • Expanda el catálogo de Servidores vinculados en SQL Server Management Studio para ver los servidores vinculados.
En este escenario, el servicio de SQL Server se cierra inesperadamente o se genera un archivo de minivolcado de varias veces en la carpeta de registro de Error de SQL Server. Este problema continúa hasta que se detiene el servicio SQL Server. Además, SQL Server Management Studio informa del siguiente error:

TÍTULO: Microsoft SQL Server Management Studio
------------------------------
Error al recuperar datos para esta solicitud. (Microsoft.SqlServer.Management.Sdk.Sfc)

Para obtener ayuda, haga clic en: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476
------------------------------
INFORMACIÓN ADICIONAL:
Se produjo una excepción al ejecutar una instrucción de Transact-SQL o el lote. (Microsoft.SqlServer.ConnectionInfo)
------------------------------

Tiempo de espera caducado. El tiempo de espera caducó antes de completar la operación o el servidor no responde. (Microsoft SQL Server, Error: -2)



Nota: Este problema no ocurre si se ejecuta una consulta de servidor vinculado cuando utiliza el proveedor SQL Native Client con el tipo de servidor como SQL Server.

Problema 2

Imagine el siguiente escenario:
  • Crear un servidor vinculado utilizando el proveedor de Microsoft OLE DB para controladores ODBC.
  • Se crea el origen de datos ODBC utilizando el proveedor de SQL Native Client con el tipo de servidor como otro origen de datos.
En este escenario, el servidor vinculado devuelve ningún resultado.

Solución


La corrección para este problema se publicó primero en la actualización acumulativa 7 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:-
979065 Paquete de actualización acumulativa 7 para SQL Server 2008 Service Pack 3
Nota: Como las compilaciones son acumulativas, cada versión de corrección nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2008. Le recomendamos que considere aplicar la versión más reciente de revisión que contenga este hotfix. 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 del lanzamiento de SQL Server 2008 Service Pack 1
Las revisiones de Microsoft SQL Server 2008 se crean para determinados service Pack de SQL Server. Debe aplicar un hotfix de SQL Server 2008 Service Pack 1 en una instalación de SQL Server 2008 Service Pack 1. De forma predeterminada, cualquier hotfix suministrada en un service pack de SQL Server se incluye en el próximo service pack de SQL Server.

Más información


Ejecución de consulta siguiente para confirmar la versión de los archivos Sqlncli.dll y Sqlservr.exe:
select * from sys.dm_os_loaded_modules where name like '%sqlncli.dll' or name like '%sqlservr.exe'
Si está utilizando Microsoft SQL Server 2008 Service Pack 1 (SP1) o versiones posteriores de Microsoft SQL Server 2008, la consulta devolverá la siguiente información de versión:
  • El archivo Sqlncli.dll tendrá una versión posterior a 9.0:3207.0.
  • El archivo Sqlservr.exe tendrá una versión posterior o igual a 10.0:2531.0, pero anteriormente que 10.0:2766.0.
Si está utilizando Microsoft SQL Server 2008 RTM o versiones posteriores de SQL Server 2008 RTM, la consulta devolverá la siguiente información de versión:
  • El archivo Sqlncli.dll tendrá una versión posterior a la 9.0:3207.0.
  • El archivo Sqlservr.exe tendrá una versión posterior o igual a 10.0:1600.0, pero anteriormente que 10.0:1835.0.

Solución alternativa


Para evitar estos problemas, siga estos pasos:

Workaround 1:

1. Elimine el servidor vinculado con errores.

2. Cree un nuevo servidor vinculado mediante el proveedor de SQL Server nativo cliente 10.0 (SQLNCLI10). Para hacer esto:
r. Haga clic en Servidores vinculados y seleccione Nuevo servidor vinculado.
b. Seleccione otro origen de datos y elija 10.0 de cliente nativo de SQL Server para el proveedor.

Workaround 2:
  1. Cree una subclave denominada "SQLNCLI" en la siguiente ruta:
    HKLM\Software\Microsoft\DataAccess
  2. Crear una entrada de registro del tipo REG_DWORD denominada "SQLOSPartitioning" en esta subclave.
  3. Establezca el valor de esta entrada en 0 x 0.

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


Software de reglaTítulo de la reglaDescripción de la reglaVersiones del producto con el que se evalúa la regla
Asesor de System CenterSQL Server Falta actualización KB979779 para evitar la corrupción de memoria de cliente nativo de SQLUn proveedor de SQL Native Client que corresponde a SQL Server 2005 está presente en este servidor. Esta versión más antigua de SQLNCLI.dll podría cargarse potencialmente en SQL Server 2008 y SQL Server 2008 R2 al enumerar los proveedores y la creación de servidores vinculan. Compilaciones específicas de SQL Server 2008 y SQL Server 2008 R2 pueden experimentar problemas y se bloquea al crear o utilizar un servidor vinculado que se crea con este afectado SQLNCLI.dll. Actualizar las instancias de SQL Server 2008 y SQL Server 2008 R2 afectadas con las revisiones requeridas o evitar el uso de este SQLNCLI.dll al crear servidores vinculados.SQL Server 2008

SQL Server 2008 R2


Referencias


Para obtener más información sobre el modelo de servicio Incremental de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

935897 un modelo de servicio Incremental está disponible en el equipo de SQL Server para entregar revisiones para problemas detectados



Para obtener más información acerca del esquema de nomenclatura para las actualizaciones de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

822499 Nuevo esquema de nomenclatura para los paquetes de actualización de software de Microsoft SQL Server


Para obtener más información acerca de la terminología de la actualización 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 que se utiliza para describir las actualizaciones de software de Microsoft