在预期条件的上下文中指定的非布尔类型的表达式,near
An expression of non-boolean type specified in a context where a condition is expected, near
SET @SQLScript = 'SELECT b.name
FROM tblBrand b
JOIN tblStore s ON b.PK_BrandID = s.FK_BrandID
JOIN tblCustomReportTemp CT on b.PK_BrandID = CT.BrandID
WHERE b.Active =1 '
if(@reportname is not null)
set @SQLScript = @SQLScript + ' AND CT.ReportName = @reportname'
if(@username is not null)
set @SQLScript = @SQLScript + ' AND CT.UserName = @username'
上面几行抛出:
在 'Repo' 附近的预期条件的上下文中指定的非布尔类型的表达式。
首先确保将 @SQLScript 变量声明为 varchar(max)。
此外,我不知道您是否使用 sp_executesql 到 运行 该查询,但如果您不使用,则必须使用 concat 函数或 concat 运算符来创建查询并添加varchar 格式的每个参数的简单引用。
SET @SQLScript = 'SELECT b.name
FROM tblBrand b
JOIN tblStore s ON b.PK_BrandID = s.FK_BrandID
JOIN tblCustomReportTemp CT on b.PK_BrandID = CT.BrandID
WHERE b.Active =1 '
if(@reportname is not null)
set @SQLScript = @SQLScript + ' AND CT.ReportName = ''' + @reportname + ''''
if(@username is not null)
set @SQLScript = @SQLScript + ' AND CT.UserName = ''' + @username + ''''
应该有效。
SET @SQLScript = 'SELECT b.name
FROM tblBrand b
JOIN tblStore s ON b.PK_BrandID = s.FK_BrandID
JOIN tblCustomReportTemp CT on b.PK_BrandID = CT.BrandID
WHERE b.Active =1 '
if(@reportname is not null)
set @SQLScript = @SQLScript + ' AND CT.ReportName = @reportname'
if(@username is not null)
set @SQLScript = @SQLScript + ' AND CT.UserName = @username'
上面几行抛出:
在 'Repo' 附近的预期条件的上下文中指定的非布尔类型的表达式。
首先确保将 @SQLScript 变量声明为 varchar(max)。
此外,我不知道您是否使用 sp_executesql 到 运行 该查询,但如果您不使用,则必须使用 concat 函数或 concat 运算符来创建查询并添加varchar 格式的每个参数的简单引用。
SET @SQLScript = 'SELECT b.name
FROM tblBrand b
JOIN tblStore s ON b.PK_BrandID = s.FK_BrandID
JOIN tblCustomReportTemp CT on b.PK_BrandID = CT.BrandID
WHERE b.Active =1 '
if(@reportname is not null)
set @SQLScript = @SQLScript + ' AND CT.ReportName = ''' + @reportname + ''''
if(@username is not null)
set @SQLScript = @SQLScript + ' AND CT.UserName = ''' + @username + ''''
应该有效。