declare @month varchar(6),@aa nvarchar(100),@bb nvarchar(100)
set @month='201109'
set @bb='''aa_'''+'+'+'@month'
set @aa=@bbprint(@bb)
print(@aa)现在有这样一种情况,变化@bb赋了一个字符串该字符串中含有变量,
我现在想把变量@bb赋给变量@aa并且想让变量@aa的结果可以计算出来aa_201109求解。
set @month='201109'
set @bb='''aa_'''+'+'+'@month'
set @aa=@bbprint(@bb)
print(@aa)现在有这样一种情况,变化@bb赋了一个字符串该字符串中含有变量,
我现在想把变量@bb赋给变量@aa并且想让变量@aa的结果可以计算出来aa_201109求解。
declare @month varchar(6),@aa nvarchar(100),@bb nvarchar(100)
set @month='201109'
set @bb='aa_'+@month
set @aa=@bbprint(@bb)
print(@aa)
declare @month varchar(6),@aa nvarchar(100),@bb nvarchar(100)
set @month='201109'
set @bb='aa_'+'@month'
set @aa=@bbprint(@bb)
print(@aa)
然后再根据情况把这个变量BB传给另一个变量,但传的过程中要把变量BB中的字符串进行计算变成一个正常的值。
把值直接賦給@aa 不行?
declare @month varchar(6),@aa nvarchar(100),@bb nvarchar(100)
set @month='201109'
set @aa='aa_'+@month
再强调一下变量BB不能少他是数据的源头,没了变量BB下面的变量都不知道是什么值。
SET @bb='XXX'
set @month='201109'
set @bb='aa_'+@month+'@'+ISNULL(@bb,'')select @aa=LEFT(@bb,CHARINDEX('@',@bb)-1),@bb=NULLIF(STUFF(@bb,1,CHARINDEX('@',@bb),''),'')
SELECT @aa,@bb
這樣?
set @month='201109'
set @bb='select @aa='+'''aa_''+'+'@month'exec sp_executesql @bb,N'@month varchar(6),@aa nvarchar(100) output',@month,@aa outputprint(@aa)
/*
aa_201109*/