FIX: 错误的行为 LIKE [-] 使用索引时

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

290918
本文已归档。它按“原样”提供,并且不再更新。
BUG #: 352098 (SHILOH_bugs)
症状
在包含值 [-] 的列上使用通配符搜索时, 如果使用一个索引匹配的行可能会被跳过。
解决方案
若要解决此问题,获得最新的 service pack,对于 SQL Server 2000。有关更多的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
290211INF: 如何获取最新的 SQL Server 2000 Service Pack
替代方法
正确的语法应包括 ESCAPE 子句,若要搜索可以指示通配符搜索的字符:
select * from dashes where no_key like 'a[~-]a%' ESCAPE '~'select * from dashes where primary_key like 'a[~-]a%' ESCAPE '~'				
状态
Microsoft 已经确认这是 SQL Server 2000 中的问题。此问题 SQL Server 2000 Service Pack 1 中第一次已得到纠正。
更多信息
-- 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)				
不正确的错误数据结果输出通配符连字符短划线

警告: 本文已自动翻译

属性

文章 ID:290918 - 上次审阅时间:01/16/2015 21:50:28 - 修订版本: 3.2

  • Microsoft SQL Server 2000 标准版
  • kbnosurvey kbarchive kbmt kbbug kbfix kbsqlserv2000sp1fix KB290918 KbMtzh
反馈