假设我有这个SQL查询:
declare @input varchar(20) select * from myTable where CONTAINS (myColumn, ISNULL(@input, 'replacement text'))
如果我尝试执行此操作,则会收到一条错误消息,提示“ ISNULL附近的语法不正确”。我知道这是ISNULL的正确语法。为什么不能在CONTAINS语句内部调用ISNULL?
试试这个:
declare @input varchar(20) SET @input=ISNULL(@input, 'replacement text') select * from myTable where CONTAINS (myColumn, @input)
当您尝试将表达式放入存储过程调用时,这是相同的问题:
EXEC YourProcedure ISNULL(@input, 'replacement text') --will fail too
CONTAIN需要字符串文字,请参见CONTAINS(Transact-SQL)