sql2012在存储过程中查询全文索引
declare @Name nvarchar(50)
set @Name='' -- 参数可能为空,为空时不查询全文索引返回所有数据,不为空是返回符合条件的数据。
select * from [表] WHERE year=xxx and (@Name='' OR CONTAINS(fName,@Name))
提示错误“全文谓词是 Null 或为空”,意思应该是CONTAINS里谓词参数不能为空,在SQL2005里就没有这个错误,除了用下面的写法或动态sql之外
IF @Name=''
select * from [表] WHERE year=xxx
else
select * from [表] WHERE year=xxx and (@Name='' OR CONTAINS(fName,@Name))
还有其它写法实现这个查询吗?
select * from [表] WHERE year=xxx and (@Name is null OR CONTAINS(fName,isnull(@Name),'a')