一个存储过程里的循环如下:
alter proc search_friends1
@username varchar(20)
as
declare @l int
set @l=0
select username,f_name,level=@l,line=cast('('+username+'->'+f_name as varchar(8000)) into #t from friends_sub where username=@username and friendclass_id=1
while @l<=5
begin
set @l=@l+1
insert #t(username,f_name,level,line)
select username=a.username,f_name=a.f_name,level=@l,line=line+'->'+a.f_name from friends_sub a,#t b where a.username=b.f_name and b.level=@l-1
end
select username,f_name,level,关系网=line+')' from #t where level=(select max(level) from #t)发现执行之后卡住了 取消后无结果集;
循环中这样写:insert #t(username,f_name,level,line)
select username=a.username,f_name=a.f_name,level=@l+1,line=line+'->'+a.f_name from friends_sub a,#t b where a.username=b.f_name and b.level=@l
set @l=@l+1
也卡住了
insert #t(username,f_name,level,line)
select username=a.username,f_name=a.f_name,level=@l+1,line=line+'->'+a.f_name from friends_sub a,#t b where a.username=b.f_name and b.level=@l
这个语句拿出来负上具体值都能执行
请问问题处在哪?
如何解决?
alter proc search_friends1
@username varchar(20)
as
declare @l int
set @l=0
select username,f_name,level=@l,line=cast('('+username+'->'+f_name as varchar(8000)) into #t from friends_sub where username=@username and friendclass_id=1
while @l<=5
begin
set @l=@l+1
insert #t(username,f_name,level,line)
select username=a.username,f_name=a.f_name,level=@l,line=line+'->'+a.f_name from friends_sub a,#t b where a.username=b.f_name and b.level=@l-1
end
select username,f_name,level,关系网=line+')' from #t where level=(select max(level) from #t)发现执行之后卡住了 取消后无结果集;
循环中这样写:insert #t(username,f_name,level,line)
select username=a.username,f_name=a.f_name,level=@l+1,line=line+'->'+a.f_name from friends_sub a,#t b where a.username=b.f_name and b.level=@l
set @l=@l+1
也卡住了
insert #t(username,f_name,level,line)
select username=a.username,f_name=a.f_name,level=@l+1,line=line+'->'+a.f_name from friends_sub a,#t b where a.username=b.f_name and b.level=@l
这个语句拿出来负上具体值都能执行
请问问题处在哪?
如何解决?
解决方案 »
- BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
- 请教存储过程,如何对它进行调试?
- 查询每一年各雇用了多少员工。
- aiaiaiaiaiaiai...........................超时超时~
- 如何记录和查询对一个表的更新历史?
- 请叫大虾们一个菜菜的问题,谢谢
- 关于order by 的用法 急!!!
- 为什么nText,nVarchar,text,nChar,这些类型的字段存的字符数不能超过256?
- ACESS数据库能否转换成SQL SERVER数据库?怎么转?
- 求某个年月内每天的销售总和
- 一个菜鸟问题:关于创建数据库的时候分配的空间
- 大家帮我看看这个触发器那错了?
看一下@I 是多少
print 不出来啊
我如果取消执行的话就显示:
用户已取消查询
[Microsoft][ODBC SQL Server Driver]操作已经取消