2 回答

TA贡献1835条经验 获得超7个赞
你的游标每一条数据都查询到了。
读取到第一条数据你把name赋值给@name,
读取到第二条数据,把name赋值给@name,所以@name永远只有一个值。
而且你这句select @name=UserName from [user]
也是如此,其实都查询到了,但是@name,只会保留最后一行数据的username

TA贡献1785条经验 获得超8个赞
你这个 游标 有问题。修改如下:
select * from [User]
use SHMSDB
declare @i int
declare @name varchar(100)
declare @name_str varchar(8000)
select @i = 0, @name = '', @name_str = ''
declare usercursor cursor
for select [username] from [user]
open usercursor
while @@fetch_status = 0 and @i < 100 -- 最大循环100次
begin
--读取下一行数据把读取的数据放在变量中
Fetch usercursor into @name
if @name_str <> ''
set @name_str = @name_str +','
set @name_str = @name_str + @name
set @i = @i + 1
end
close usercursor
deallocate usercursor
print '你游标循环了'+cast(@i as varchar)+'次,用户名字符串为:'+@name_str
添加回答
举报