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
添加回答
舉報