REVISIÓN: Resultados incorrectos con la combinación de columna convertida en binario

Seleccione idioma Seleccione idioma
Id. de artículo: 282243 - Ver los productos a los que se aplica este artículo
Error nº: 351225 (SHILOH_bugs)
Nº DE ERROR: 100900 (SQLBUG_70)
Expandir todo | Contraer todo

En esta página

Síntomas

Cuando utilice una intercalación no distingue entre mayúsculas y minúsculas, si una subconsulta correlacionada o combinación se realiza en una columna basada en caracteres que se ha convertido a binary o varbinary y, si el optimizador elige un plan que utiliza a una coincidencia de cola de impresión o hash de la tabla con la caché, se pueden devolver resultados incorrectos. Las filas que se devuelven son las coincidencias según una comparación no distingue entre mayúsculas y minúsculas de la columna, en vez de una comparación binaria.

Causa

En un servidor no distingue entre mayúsculas y minúsculas, se realizan las búsquedas de caché de cola de impresión o de hash de tabla de forma no distingue entre mayúsculas y minúsculas en lugar de una búsqueda binaria. Porque la columna se convierte en un tipo binario , se debe realizar una búsqueda binaria.

Solución

SQL Server 2000

Para resolver este problema, consiga el Service Pack más reciente para Microsoft SQL Server 2000. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
290211INF: Cómo obtener el Service Pack más reciente de SQL Server 2000

SQL Server 7.0

Para resolver este problema, obtenga el service pack más reciente para Microsoft SQL Server 7.0. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
301511INF: Cómo obtener el Service Pack más reciente de SQL Server 7.0
Nota : se creó la siguiente revisión antes de SQL Server 7.0 Service Pack 4.

La versión en inglés de esta revisión debe tener los atributos de archivo siguientes o posteriores:
   Version      File name      Platform
   ----------------------------------------------------

   7.00.0919    s70919i.exe    x86        SP2-based fix
   7.00.0919    s70919a.exe    Alpha      SP2-based fix

   7.00.0970    s70970i.exe    x86        SP3-based fix
   7.00.0970    s70970a.exe    Alpha      SP3-based fix
				
Nota : debido a la interdependencia entre archivos, el más reciente revisión o característica que contiene los archivos anteriores quizás contenga también archivos adicionales.

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:" de este artículo.

SQL Server 2000
Este problema se corrigió por primera vez en SQL Server 2000 Service Pack 1.

SQL Server 7.0
Este problema se corrigió por primera vez en Pack 4 de Microsoft SQL Server 7.0.

Más información

La siguiente secuencia de comandos muestra el problema. Antes de aplicar la revisión, la secuencia de comandos devuelve dos filas con un TestCode 'a' en lugar de una fila con valor 'a' y un segundo con valor 'A'.
CREATE TABLE #tblIDs(TestID int, Code varchar(1))
CREATE TABLE #tblValues(Code varchar(1))

INSERT INTO #tblIDs(TestID, Code) VALUES(1,'a')
INSERT INTO #tblIDs(TestID, Code) VALUES(2,'A')

INSERT INTO #tblValues(Code) VALUES('a')
INSERT INTO #tblValues(Code) VALUES('A')

SELECT #tblValues.Code AS TestCode, 
   (SELECT #tblIDs.TestID FROM #tblIDs 
      WHERE CAST(#tblIDs.Code AS varbinary) = 
            CAST(#tblValues.Code AS varbinary)
    ) AS TestID 
FROM #tblValues

DROP TABLE #tblIDs
DROP TABLE #tblValues
GO
				

Propiedades

Id. de artículo: 282243 - Última revisión: miércoles, 29 de octubre de 2003 - Versión: 3.1
La información de este artículo se refiere a:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Palabras clave: 
kbmt kbbug kbfix kbsqlserv2000sp1fix KB282243 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): 282243

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