select * from [User]use DB
declare @i int
declare @name varchar
declare usercursor cursor
for select [username] from [user]
open usercursor
select @i=count(*) from [user]
select @name=UserName from [user]
--读取下一行数据把读取的数据放在变量中
fetch next from usercursor
--是系统关键字代表游标取值的状态等于0表示取到了一行数据 否则表示最后一行数据读完了!
while @@fetch_status=0 and @i>1
begin
fetch next from usercursor into @name
set @i=@i-1
end
close usercursor
--删除游标引用
deallocate usercursor请问:select * from [User]
我查询到有几条数据,为什么 fetch next from usercursor into @name
这段查询出却只有第一条数据,为啥循环没有数据?
declare @i int
declare @name varchar
declare usercursor cursor
for select [username] from [user]
open usercursor
select @i=count(*) from [user]
select @name=UserName from [user]
--读取下一行数据把读取的数据放在变量中
fetch next from usercursor
--是系统关键字代表游标取值的状态等于0表示取到了一行数据 否则表示最后一行数据读完了!
while @@fetch_status=0 and @i>1
begin
fetch next from usercursor into @name
set @i=@i-1
end
close usercursor
--删除游标引用
deallocate usercursor请问:select * from [User]
我查询到有几条数据,为什么 fetch next from usercursor into @name
这段查询出却只有第一条数据,为啥循环没有数据?
@name VARCHAR(100)
SET @name = '' ;
DECLARE usercursor CURSOR
FOR SELECT [username] FROM UserInfo
OPEN usercursor
--读取下一行数据把读取的数据放在变量中
FETCH NEXT FROM usercursor INTO @nametmp
--是系统关键字代表游标取值的状态等于0表示取到了一行数据 否则表示最后一行数据读完了!
WHILE @@fetch_status = 0
BEGIN
SET @name = @name + @nametmp
FETCH NEXT FROM usercursor INTO @nametmp
END
CLOSE usercursor
DEALLOCATE usercursor
PRINT @name
fetch next from usercursor into @name這個只能去當前的數據,下一次循環就把上一次的值沖掉了
那请问 为什么我这种方式,可以全部查询到呢?
@name
这是个标量,放单个值用的
哦,对,我写错了,for select * from [user]是这这样就可以