时间:2021-07-01 10:21:17 帮助过:23人阅读
declare @i int set @i = 1 while @i<5 --循环执行4次 begin declare @aa varchar(1) --定义变量 print convert(varchar(1),@i)+'--'+isnull(@aa,'') --打印变量 select @aa='0' where 1>2 --判断如果1大于2则赋值给变量,判断不成立所以变量还是没有赋值 if @aa is null --如果变量没有取到值,则将变量赋值为1 set @aa = '1' set @i = @i + 1 --循环 end
declare @i int set @i = 1 while @i<5 begin declare @aa varchar(1) set @aa = '' print convert(varchar(1),@i)+'--'+isnull(@aa,'') select @aa='0' where 1>2 if @aa is null set @aa = '1' set @i = @i + 1 end
然后运行结果如下:
1--
2--
3--
4--
唉,这个问题,微软有点水呀
SQLSERVER 的bug
标签:sqlserver 微软 sql 循环里面定义变量自动赋值