REVISIÓN: Los mensajes de error cuando ejecuta una consulta en un servidor vinculado se crea en SQL Server 2005: "no se puede preparar informes" y "el prefijo de columna '<column_prefix_name>' no coincide con un nombre de tabla o alias usado en la consulta"

Seleccione idioma Seleccione idioma
Id. de artículo: 936223 - Ver los productos a los que se aplica este artículo
Nº de error: 50001186 (revisión SQL)
Expandir todo | Contraer todo

En esta página

Síntomas

Tenga en cuenta la situación siguiente. En Microsoft SQL Server 2005, crear un servidor vinculado mediante el proveedor de OLE DB de SQL Native Client (SQLNCLI). El servidor vinculado está vinculado a un servidor que tiene instalado Microsoft SQL Server 2000. En este escenario, recibirá los siguientes mensajes de error cuando ejecuta una consulta en el servidor vinculado:
Mensaje de error 1
Msj 8180, nivel 16, estado 1, línea 1
No se puede preparar instrucciones.
Mensaje de error 2
Msj 107, nivel 16, estado 2, línea 1
El prefijo de columna ' <column_prefix_name> ' no coincide con un nombre de tabla o alias usado en la consulta.


Nota Este problema también se produce en SQL Server 2008. Si experimenta este problema al conectarse a un servidor SQL Server 2000 en SQL Server 2008, debe habilitar el indicador de traza 4112 para resolver este problema. Para obtener más información, consulte la sección "Más información".

Causa

Este problema se produce porque SQL Server 2005 genera un plan de ejecución tiene una consulta remota. SQL Server 2005 debe ejecutar la consulta remota en SQL Server 2000 para recuperar los datos necesarios. SQL Server 2000 no puede controlar la consulta remota. Por lo tanto, se produce error 107 en SQL Server 2000. A continuación, error 107 se propagará de vuelta al SQL Server 2005. Por lo tanto, se produce el error 107 en SQL Server 2005 y se produce error 8180 en SQL Server 2005.

Solución

Información de actualización acumulativa

La corrección para este problema se lanzó por primera vez en la actualización acumulativa 2. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2005 Service Pack 2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
936305Paquete de actualización acumulativa 2 para SQL Server 2005 Service Pack 2
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2005. Microsoft recomienda que consideren la aplicación de la versión más reciente de correcció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:
937137Compilaciones de SQL Server 2005 que se publicaron después del lanzamiento de SQL Server 2005 Service Pack 2
Las revisiones de Microsoft SQL Server 2005 se crean para determinados service pack de SQL Server. Debe aplicar un hotfix de SQL Server 2005 Service Pack 2 a una instalación de SQL Server 2005 Service Pack 2. De forma predeterminada, cualquier hotfix suministrada en un service pack de SQL Server se incluye en el siguiente service pack.

Solución

Para evitar este problema, utilice el proveedor Microsoft OLE DB para ODBC para crear el servidor vinculado en SQL Server 2000.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:".

Más información

El paquete de actualización acumulativa (compilación 3175) para SQL Server 2008 y SQL Server 2005 SP2 ambos presentan 4112 el indicador de traza. Después de aplicar el paquete de actualización acumulativa (compilación 3175) para SQL Server 2005 SP2, debe habilitar el indicador de traza 4112 para resolver este problema. Para obtener información acerca de cómo habilitar un indicador de traza en SQL Server 2005, consulte la sección "Comentarios" del sitio Web de Microsoft Developer Network (MSDN) siguiente:
http://msdn2.microsoft.com/en-us/library/ms188396.aspx

Pasos para reproducir el problema

  1. Inicie SQL Server Management Studio y, a continuación, conectarse a una instancia de SQL Server 2005.
  2. Cree una nueva consulta y, a continuación, ejecute las instrucciones siguientes.
    EXEC sp_addlinkedserver
    @server = '<LinkedServerName>', 
    @provider = 'SQLNCLI', 
    @srvproduct = '', 
    @datasrc = '<InstanceName>', 
    @catalog = '<DatabaseName>' 
    
    exec sp_serveroption
    @server = '<LinkedServerName>' 
    ,@optname = 'RPC' 
    ,@optvalue = 'TRUE'
    exec sp_serveroption
    @server = '<LinkedServerName>' 
    ,@optname = 'RPC OUT' 
    ,@optvalue = 'TRUE'
    
    
    DECLARE @supervisorID varchar(40)
    set @supervisorID = 'Volume Discount'
    
    SELECT DISTINCT J.STOR_ID
    FROM   [<LinkedServerName>].[<DatabaseName>].DBO.DISCOUNTS J
    WHERE  J.DISCOUNTTYPE = @supervisorID
           AND J.DISCOUNT = (SELECT MAX(B.DISCOUNT)
                             FROM   [<LinkedServerName>].<DatabaseName>.DBO.DISCOUNTS B
                             WHERE  B.DISCOUNTTYPE = J.DISCOUNTTYPE)
    
    GO
    
    Notas
    • <LinkedServerName>es un marcador de posición para el nombre del servidor vinculado.
    • <InstanceName>es un marcador de posición para el nombre de instancia para el servidor vinculado.
    • <DatabaseName>es un marcador de posición para el nombre de la base de datos.
Después de ejecutar estas instrucciones, recibirá los mensajes de error que se mencionan en la sección "Síntomas".

Propiedades

Id. de artículo: 936223 - Última revisión: martes, 2 de febrero de 2010 - Versión: 2.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Palabras clave: 
kbmt kbsql2005engine kbexpertiseadvanced kbfix kbpubtypekc kbqfe KB936223 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 936223

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com