我有这个查询
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'
不会产生任何结果。 据我所知,这两个查询应该产生相同的输出?或者FREETEXTTABLE对参数特别挑剔?
答案 0 :(得分:0)
在这种情况下,使用NVARCHAR
参数时不应添加单引号。请尝试以下方法:
EXEC sp_executesql N'select top 10 * from FREETEXTTABLE([Venue], FullAddress, @p)',
N'@p nvarchar(4000)',
@p='Canada'