2012-07-04 60 views
0

我有這個疑問使用參數與FREETEXTTABLE改變輸出

select top 10 * from FREETEXTTABLE([Venue], FullAddress, 'Canada') 

的正常工作,併產生結果;

現在如果我打電話從這個代碼,並提供參數,它被改爲

exec sp_executesql N'select top 10 * from FREETEXTTABLE([Venue], FullAddress, ''@p'')',N'@p nvarchar(4000)',@p='Canada' 

這無論如何不會產生任何結果。 據我所知,這2個查詢應該產生相同的輸出?或者FREETEXTTABLE對參數特別挑剔?

回答

0

在這種情況下,使用NVARCHAR參數時,不應添加單引號。請嘗試以下代碼:

EXEC sp_executesql N'select top 10 * from FREETEXTTABLE([Venue], FullAddress, @p)', 
        N'@p nvarchar(4000)', 
        @p='Canada' 
+0

但是,當我從代碼執行查詢時發生這種情況。 'EXEC sp_executesql'取自Profiler。 – Evgeni

+0

@Eugene - 那麼它是一個問題,你如何執行你的查詢*從代碼*。可以肯定的是,上面的查詢是否返回了預期的結果? – Lamak

+0

是的,這個「從FREETEXTTABLE([Venue],FullAddress,'加拿大')中選擇最佳10 *」在管理工作室調用時工作正常 – Evgeni