2013-04-22 70 views
1

我有一个SQL Server 2012中的示例XML文件FileTable如何在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。我们会得到结果。

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,'"$"') 

输出:无结果

回答

1

你必须划定特殊人物

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

见FTS团队博客:http://blogs.msdn.com/b/sqlfts/archive/2009/12/09/gotchas-on-searching-for-at-t-m-m-etc.aspx

+0

其实FILE_STREAMç olumn包含Sql Server文件表中的实际数据。所以我在File_Stream列中搜索特殊字符(!或@或#或$或%或^)。我的查询是 Select * From FileTable where CONTAINS(file_stream,'$') 输出:没有结果 – user2306192 2013-04-22 09:16:15

+0

@ user2306192:您是否按照我的示例添加了双引号?也就是'CONTAINS(file_stream,'“$”')' – gbn 2013-04-22 09:36:59