1

我在 SQL Server 2012 中有示例 XML 文件FileTable

XML:

<?xml version="1.0" encoding="UTF-8"?>
<Company>
         <Comp id="c101">
               <Name>Tony Jaw</Name>  
               <SplChar>$</SplChar>   
               <Place>US</Place>
         </Comp>
</Company>

FileTable问题:我们可以通过执行以下查询来搜索“Tony”或“Jaw” 。我们会得到结果。

Select * 
From FileTable 
where FREETEXT(file_stream,'Tony')

但是,我无法通过执行以下查询在 xml 文件中搜索特殊字符 ($)

Select * 
From FileTable 
where FREETEXT(file_stream,'$')

请任何人解释......

实际上 FILE_STREAM 列包含 SQL Server 中的实际数据FileTable。所以我在 File_Stream 列中搜索特殊字符(! 或 @ 或 # 或 $ 或 % 或 ^ )

修改后的查询:

Select * 
From FileTable 
where CONTAINS(file_stream,'"$"')

输出:无结果

4

1 回答 1

1

您必须分隔特殊字符

where file_stream CONTAINS(ColName,'"$"')

请参阅 FTS 团队博客:http: //blogs.msdn.com/b/sqlfts/archive/2009/12/09/gotchas-on-searching-for-at-tmm-etc.aspx

于 2013-04-22T08:41:40.357 回答