Entrar

CORRECÇÃO: Comportamento incorreto do como [-] ao usar um índice

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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

290918
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Erro nº: 352098 (SHILOH_bugs)
Sintomas
Ao usar uma pesquisa de curinga em uma coluna que contém o valor [-], linhas coincidentes podem ser ignoradas se um índice é usado.
Resolução
Para resolver esse problema, obtenha o service pack mais recente para o SQL Server 2000. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
290211INF: Como obter o Service Pack mais recente do SQL Server 2000
Como Contornar
A sintaxe correta deve incluir a cláusula ESCAPE para procurar caracteres que podem indicar a pesquisa de curinga:
select * from dashes where no_key like 'a[~-]a%' ESCAPE '~'select * from dashes where primary_key like 'a[~-]a%' ESCAPE '~'				
Situação
A Microsoft confirmou que este é um problema no SQL Server 2000. Esse problema foi corrigido primeiro no SQL Server 2000 Service Pack 1.
Mais Informações
-- Incorrect result set is produced by a "SELECT" which uses the "LIKE" -- clause where one argument is a primary key column and the other is a-- string literal with "[-]" in the middle of it.use northwindset nocount offif ( object_id('dashes') is not NULL ) drop table dashescreate table dashes ( primary_key varchar(20) primary key, no_key varchar(20) )insert dashes values ( 'a-a-key', 'a-a-value' )print 'next two statements correctly return one record each'select * from dashes where no_key like 'a-a%'select * from dashes where primary_key like 'a-a%'print 'for the primary key query, it incorrectly returns no rows'select * from dashes where no_key like 'a[-]a%'select * from dashes where primary_key like 'a[-]a%'				
next two statements correctly return one record eachprimary_key          no_key               -------------------- -------------------- a-a-key              a-a-value(1 row(s) affected)primary_key          no_key               -------------------- -------------------- a-a-key              a-a-value(1 row(s) affected)for the primary key query, it incorrectly returns no rowsprimary_key          no_key               -------------------- -------------------- a-a-key              a-a-value(1 row(s) affected)primary_key          no_key               -------------------- -------------------- (0 row(s) affected)				
dados incorretos errado resultado saída curinga hífen traço

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 290918 - Última Revisão: 01/16/2015 21:50:25 - Revisão: 3.2

  • Microsoft SQL Server 2000 Standard Edition
  • kbnosurvey kbarchive kbmt kbbug kbfix kbsqlserv2000sp1fix KB290918 KbMtpt
Comentários