go
create proc TempProc
@tempId nvarchar(6),@msg varchar(36) output
as
begin
if  @tempId= '1000'
begin
set @msg = '成功'
return 1
end 
else
begin
set @msg = '失败'
return 0
end
end

go
declare  @sql  varchar(36)
exec TempProc '1000',@sql
select @sql为什么这个执行的结果 @sql (output参数) 会是无列名 为NULL 呢
我其他地方写的存储过程 语法都是一样的  为什么这个就显示不出来呢

解决方案 »

  1.   

    EXEC   TempProc '',@sql output 
    select   @sql 
      

  2.   


    create proc TempProc
    @tempId nvarchar(6),@msg nvarchar(36) output
    as
    begin
    if @tempId= '1000'
    begin
    set @msg = N'成功'
    return 1
    end  
    else
    begin
    set @msg = N'失败'
    return 0
    end
    endgo
    declare @sql nvarchar(36)
    exec TempProc '1000',@sql output 
    select @sql result--drop proc TempProcresult
    成功
      

  3.   

    知道了  谢谢  原来是 没有加  output  
    郁闷 不好意思 写代码太急了  很感谢
      

  4.   

    幸亏没有问我的老师 
    要不然把他给气死了 哈哈 
    对了 顺便问一个C# 的问题
    就是 定义一个aa 变量 然后 在单击事件里面 做一个判断
    如果成立就显示出aa 
    1  private void button1_Click(object sender, EventArgs e)
    2        {
    3            int aa = 3;
    4           if (aa++==4)
    5            {
    6               MessageBox.Show(aa + " ");
    7            }
    8       }
    我当时想 应该会Show出aa  可是既然没有
    后来我就把它放在VS上 单步调试 最后当运行到if判断的时候 直接跳到了 
    方法体结束括号那 也就是 7   但是aa 的值却已经是4 
    是否是因为  运算符的优先级问题 - -!!! 
    可是我记得 == 的优先级并没有 aa ++ 高啊