CORRECÇÃO: Incorrectos com associação da coluna convertidos para binário

Traduções de Artigos Traduções de Artigos
Artigo: 282243 - Ver produtos para os quais este artigo se aplica.
Erro n.º: 351225 (SHILOH_bugs)
N.º DE BUGS: 100900 (SQLBUG_70)
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Quando utiliza uma collation de sensível a maiúsculas e minúsculas, se uma subconsulta correlated ou associação é efectuada numa coluna baseados em caracteres que tenha sido convertida para binário ou varbinary e se o Optimizador de escolher um plano que utiliza uma correspondência de spool ou hash da tabela com cache, podem ser devolvidos resultados incorrectos. As linhas que são devolvidas são as correspondências com base numa comparação sensível a maiúsculas e minúsculas da coluna em vez de uma comparação binária.

Causa

Num servidor sensível a maiúsculas e minúsculas, procuras da cache de spool ou hash de tabela são executadas de forma não sensível a maiúsculas e minúsculas em vez de uma pesquisa binária. Uma vez que a coluna foi convertida para um tipo binário , deverá ser efectuada uma pesquisa binária.

Resolução

SQL Server 2000

Para resolver este problema, obtenha o service pack mais recente do Microsoft SQL Server 2000. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
290211INF: How to Obtain the Latest SQL Server 2000 Service Pack

SQL Server 7.0

Para resolver este problema, obtenha o service pack mais recente do Microsoft SQL Server 7.0. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
301511INF: How to Obtain the Latest SQL Server 7.0 Service Pack
Nota : A correcção seguinte foi criada anterior ao Microsoft SQL Server 7.0 Service Pack 4.

A versão inglesa desta correcção deverá ter os seguintes atributos de ficheiro ou 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 : devido a dependências de ficheiros, a correcção mais recente ou funcionalidade que contém os ficheiros anteriores poderá também conter ficheiros adicionais.

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no início deste artigo.

SQL Server 2000
Este problema foi corrigido pela primeira vez no SQL Server 2000 Service Pack 1.

SQL Server 7.0
Este problema foi corrigido pela primeira vez no Microsoft SQL Server 7.0 Service Pack 4.

Mais Informação

O script seguinte demonstra o problema. Antes de aplicar a correcção, o script regressa de duas linhas com um TestCode de 'a' em vez de uma linha com o valor 'a' e um segundo com o 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
				

Propriedades

Artigo: 282243 - Última revisão: 29 de outubro de 2003 - Revisão: 3.1
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Palavras-chave: 
kbmt kbbug kbfix kbsqlserv2000sp1fix KB282243 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 282243

Submeter comentários

 

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