Oprava: Nesprávná chování LIKE [-] při použití indexu

Překlady článku Překlady článku
ID článku: 290918 - Produkty, které se vztahují k tomuto článku.
Chyba #: 352098 (SHILOH_bugs)
Rozbalit všechny záložky | Minimalizovat všechny záložky

Příznaky

Při použití hledání pomocí zástupných znaků na sloupec obsahující hodnota [-] může být odpovídající řádky vynechány Pokud index je používán.

Řešení

Tento problém vyřešíte pomocí nejnovější aktualizace service pack pro SQL Server 2000. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
290211INF: Jak získat nejnovější aktualizaci Service Pack pro SQL Server 2000

Jak potíže obejít

Správnou syntaxi by měla zahrnovat klauzuli ESCAPE vyhledávání označující hledání zástupných znaků:
select * from dashes where no_key like 'a[~-]a%' ESCAPE '~'
select * from dashes where primary_key like 'a[~-]a%' ESCAPE '~'
				

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v SQL Server 2000. Tento problém byl poprvé opraven v SQL Server 2000 Service Pack 1.

Další informace

-- 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 northwind
set nocount off

if ( object_id('dashes') is not NULL ) drop table dashes
create 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 each
primary_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 rows
primary_key          no_key               
-------------------- -------------------- 
a-a-key              a-a-value

(1 row(s) affected)

primary_key          no_key               
-------------------- -------------------- 

(0 row(s) affected)
				

Vlastnosti

ID článku: 290918 - Poslední aktualizace: 6. listopadu 2003 - Revize: 3.2
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2000 Standard Edition
Klíčová slova: 
kbmt kbbug kbfix kbsqlserv2000sp1fix KB290918 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:290918

Dejte nám zpětnou vazbu

 

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