使用sp_executesql进行MSSQL全文搜索

时间:2018-03-14 14:52:04

标签: sql-server entity-framework-6 full-text-search

我正在使用Entity Framework v6.3并调用DbSet.SqlQuery来查询某个国家/地区的表格。为表和列启用了全文索引。发出的SQL如下:

exec sp_executesql N'SELECT * FROM tblBaseGeos WHERE Contains(Name, @p0)',N'@p0 nvarchar(13)',@p0=N'United States'

这给了我错误:Syntax error near 'States' in the full-text search condition 'United States'.

我已经阅读了如何正常操作:

SELECT * FROM tblBaseGeos WHERE Contains(Name, '"United States"')

这有效,但我在使用sp_executesql的双引号时遇到问题。我该如何修复查询?

1 个答案:

答案 0 :(得分:1)

用双引号括住搜索词组,并在nvarchar参数的长度上添加2个符号。下面的代码工作正常

exec sp_executesql 
 N'SELECT * FROM tblBaseGeos WHERE Contains(Name, @p0)',N'@p0 nvarchar(15)',
  @p0=N'"United States"'