sql server中如何为一个不确定的变量赋值
发布网友
发布时间:2022-04-13 13:31
我来回答
共2个回答
热心网友
时间:2022-04-13 15:00
需要在动态语句内部定义该变量,而且这个变量不能再其他地方调用的;
这是因为SQL在执行动态语句时,是临时生成执行计划的
declare @c int
set @c=1
while @c<50
begin
ecec('declare @l'+@c+' int set @l'+@c+' ='+@c +' print @l'+@c)
set @c=@c+1
end追问嗯,我也是和你一样的思路,但是这些被赋值的变量只能在动态sql语句里用,外边的批处理用不了
追答
有了可以使用下面的代码
declare @sql nvarchar(100),@parminfo nvarchar(100) @l1 int ,@l2 int
set @sql='set @m=@i'--要执行的动态语句
set @parminfo=' @m int output,@i int'--动态语句中出现的参数
exec sp_executesql @sql,@parminfo,@i=@k,@m=@l1 output--从第3个参数开始,是对动态语句中出现的参数进行赋值,
print @l1
热心网友
时间:2022-04-13 16:18
set @sqlstr='set @L' + cast(@count as varchar(1)) + '=' + @count
里边的@L_变量根本没定义过
怎么可能实现?
可以先定义 这样也不是很麻烦
declare @L1 int
declare @L2 int
declare @L3 int
set @L1=1
set @L2=@L1+1
set @L3=@L2+1