У меня есть хранимая процедура, которая динамически создает запрос.Предложение where, связанное с этим запросом, основано на значениях фильтра, выбранных пользователем.Независимо от того, что я делаю, предложение where, похоже, не устанавливается.
-- Dynamically build the WHERE clause based on the filters
DECLARE @whereClause as nvarchar(1024)
IF (@hasSpouse > -1)
BEGIN
IF (@hasSpouse = 0)
SET @whereClause='p.[HasSpouse]=0'
ELSE
SET @whereClause='(p.[HasSpouse]=1 OR p.[HasSpouse] IS NULL)'
END
-- Dynamically add the next filter if necessary
IF (@isVegan > -1)
BEGIN
IF (LEN(@whereClause) > 0)
BEGIN
SET @whereClause = @whereClause + ' AND '
END
IF (@isVegan = 0)
SET @whereClause = @whereClause + 'c.[IsVegan]=0'
ELSE
SET @whereClause = @whereClause + '(c.[IsVegan]=1 OR c.[IsVegan] IS NULL)'
END
PRINT @whereClause
@whereClause никогда ничего не печатает.В свою очередь, LEN (@whereClause) всегда равен NULL.Значения @isVegan и @hasSpouse передаются в хранимую процедуру.Значения - это то, что я ожидал.
Что я делаю не так?Почему @whereClause никогда не устанавливается?
Спасибо за вашу помощь!
Спасибо!