一个存储过程
CREATE PROCEDURE get_NULL
@title varchar(80) = NULL, 
@ytd_sales nvarchar OUTPUT
AS  IF @title IS NULL
BEGIN
   PRINT 'ERROR: You must specify a title value.'
   RETURN
ENDSELECT @ytd_sales=单号
FROM 划价收费
WHERE 操作员= @titleRETURN
GO我想返回查询到的"单号"这一列的所有行 
在查询分析器中写道:
declare @ytd_sales nvarchar(50)
exec get_NULL '王大伟',@ytd_sales output
select @ytd_sales 为什么得不到我想要的结果 应该怎么写 各位大哥?

解决方案 »

  1.   

    . 输出参数 
    declare @num int, 
    @sqls nvarchar(4000) 
    set @sqls='select count(*) from tableName' 
    exec(@sqls) 
    --如何将exec执行结果放入变量中? declare @num int, 
    @sqls nvarchar(4000) 
    set @sqls='select @a=count(*) from tableName ' 
    exec sp_executesql @sqls,N'@a int output',@num output 
    select @num 
      

  2.   

    CREATE PROCEDURE get_NULL 
    @title varchar(80) = NULL, 
    @ytd_sales nvarchar OUTPUT 
    AS  IF @title IS NULL 
    BEGIN 
      PRINT 'ERROR: You must specify a title value.' 
      RETURN 
    END SELECT @ytd_sales = ''
    SELECT @ytd_sales=@ytd_sales+单号 
    FROM 划价收费 
    WHERE 操作员= @title RETURN 
    GO
      

  3.   

    这样可以分行显示:
    CREATE PROCEDURE get_NULL 
    @title varchar(80) = NULL, 
    @ytd_sales nvarchar OUTPUT 
    AS  IF @title IS NULL 
    BEGIN 
      PRINT 'ERROR: You must specify a title value.' 
      RETURN 
    END SELECT @ytd_sales = '' 
    SELECT @ytd_sales=@ytd_sales+单号 + Char(13) + Char(10) 
    FROM 划价收费 
    WHERE 操作员= @title RETURN 
    GO