Есть ли способ избежать ошибки Нулевой или пустой полнотекстовый предикат в приведенном ниже примере?
DECLARE @SearchText VARCHAR(1000);
SET @SearchText = ''
SELECT * FROM myTable
WHERE
/*
SOME CONTITIONS
AND
*/
(
@SearchText = ''
OR
(
@SearchText <> ''
AND
CONTAINS((myField1, myField2), @SearchText)
)
)
Я мог бы так поступить, но хочу избежатьдублируя код:
DECLARE @SearchText VARCHAR(1000);
SET @SearchText = ''
IF @SearchText = ''
BEGIN
SELECT * FROM myTable
WHERE
/*
SOME CONTITIONS
*/
END
ELSE
BEGIN
SELECT * FROM myTable
WHERE
/*
SOME CONTITIONS
AND
*/
(
@SearchText = ''
OR
(
@SearchText <> ''
AND
CONTAINS((myField1, myField2), @SearchText)
)
)
END
[РЕДАКТИРОВАТЬ]
Я нашел ответ здесь
Таким образом, решение состоит в том, чтобы установить @SearchText на '""'
вместо того, чтобы оставлять его пустым.