Sql server 使用sp_executesql进行MSSQL全文搜索
我正在使用EntityFrameworkV6.3并调用Sql server 使用sp_executesql进行MSSQL全文搜索,sql-server,entity-framework-6,full-text-search,Sql Server,Entity Framework 6,Full Text Search,我正在使用EntityFrameworkV6.3并调用DbSet.SqlQuery来查询一个国家的表。已为表和列启用全文索引。发出的SQL如下所示: exec sp_executesql N'SELECT * FROM tblBaseGeos WHERE Contains(Name, @p0)',N'@p0 nvarchar(13)',@p0=N'United States' 这给了我一个错误:全文搜索条件“美国”中“州”附近的语法错误。 我读过如何正常地做这件事: SELECT * FROM
DbSet.SqlQuery
来查询一个国家的表。已为表和列启用全文索引。发出的SQL如下所示:
exec sp_executesql N'SELECT * FROM tblBaseGeos WHERE Contains(Name, @p0)',N'@p0 nvarchar(13)',@p0=N'United States'
这给了我一个错误:全文搜索条件“美国”中“州”附近的语法错误。
我读过如何正常地做这件事:
SELECT * FROM tblBaseGeos WHERE Contains(Name, '"United States"')
这是可行的,但是我在使用sp_executesql的双引号时遇到了问题。如何修复查询?用双引号括住搜索短语,并在nvarchar参数的长度上添加两个符号。下面的代码可以正常工作
exec sp_executesql
N'SELECT * FROM tblBaseGeos WHERE Contains(Name, @p0)',N'@p0 nvarchar(15)',
@p0=N'"United States"'
谢谢,我就是这么做的,但失败了。看着你的,我意识到我在测试时忘了增加nvarchar长度。。。