我尝试通过传递CSV参数来使用sp_executesql。
当我通过传递构造的字符串来使用EXEC时,它会返回一些数据
declare @Accts nvarchar(100) = 'IntYTD,TotalIncome,PayoffYTD'
declare @sql nvarchar(max)
set @sql = 'select sum(TotalBalanceMTD) from rptGL where FieldName in (''' + replace(@Accts, ',', ''',''') + ''') group by FieldName'
exec (@sql)
但是当我使用sp_executesql并传递@Accts作为参数时,它不返回任何数据。
set @sql = 'select sum(TotalBalanceMTD) from rptGL where FieldName in (@values) group by FieldName'
declare @v nvarchar(max) = '''' + replace(@Accts, ',', ''',''') + ''''
exec sp_executesql @sql, N'@values varchar(max)', @values = @v
我无法找到这种方法的错误
答案 0 :(得分:0)
如果您将语句更改为以下内容,则会获得结果。 为了得到一些目标,你也可以使用charindex或split。
var text = focus.append("text")
//var text = rect.append("text")
.attr("x", 10)
.attr("y", 10);
CHARINDEX:
set @sql = 'EXEC(''select sum(TotalBalanceMTD) from #rptGL where FieldName in (''+@values+'') group by FieldName'')'
declare @v nvarchar(max) = '''' + replace(@Accts, ',', ''',''') + ''''
exec sp_executesql @sql, N'@values varchar(max)', @values = @v