2013-04-22 72 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