像这样的一个存储过程
Create Proc [dbo].ShowCateName
(
@CateCode varchar(250),--长度是四的倍数
@CateName varchar(100) output
)
as
DECLARE @i int
Declare @Lstr int
Set @Lstr = Len(@CateCode)/4 
Set @i=0
WHILE @i < @Lstr 
BEGIN 
Set @i =@i +1 
Select @CateName=A.CateName From Category A Where A.CateCode=Substring(@CateCode,1,@i*4) 
IF @i<@Lstr
Print @CateName+'-->'
Else
Print @CateName
END现在是相当于查询Len(@CateCode)/4次,各查询结果不能一次输出,Select几次就输出几个结果,有办法一次输出吗?

解决方案 »

  1.   

    具体怎么做,还请赐教
    我也以为应该像ASP 里的 SQL = SQL &"dsfsdf"
    这样子
    可是就不知道在存储过程里该怎么写
      

  2.   

    ALTER Proc [dbo].ShowCateName @CateCode varchar(250),@CateName varchar(100) output as
    DECLARE @i int,@Lstr int
    Set @Lstr = Len(@CateCode)/4 
    Set @i=0
    SET @CateName=''
    WHILE @i < @Lstr 
    BEGIN 
      Set @i =@i +1 
      Select @CateName=@CateName+A.CateName From Category A Where A.CateCode=Substring(@CateCode,(@i-1)*4+1,4) 
      IF @i<@Lstr
         Print @CateName+'-->'+Substring(@CateCode,(@i-1)*4+1,@i*4)
      Else
         Print @CateName
    END