--set @a='a' 是将右边的常量,赋予左边的变量!

解决方案 »

  1.   

    比如 Declare @B int
         Exec prGetId 
         @A=@B OUTPUT
    prGetId is  a procedure
    @A是prGetId 的输入参数
    那最后一句是将 @A赋给@B吗?
      

  2.   

    Declare @B int
         Exec prGetId @B OUTPUT
    不就可以了吗?
      

  3.   

    就像减号的操作符,A-B你认为是A减去B呢,还是B减去A呢?
      

  4.   

    Declare @B int
         Exec prGetId @A OUTPUT
    set @B = @A
    看错了,你得意思可能是这样吧!
      

  5.   

    你得意思是不是这样:
    Declare @B int
    Exec prGetId @A OUTPUT
    Set @B = @A
      

  6.   

    这个表达式,如果放在检索语句中的话
    如:
    select * from table1 where id=2
    这里的表达式是个查询条件,意思是:查找表中id=2的那条记录,并显示在列表中。一个等号,就是一个赋值语句,就是将后面的值赋值给前面的变量
      

  7.   

    to pjy(古虫):在prGetId里@A是输入参数
    Exec prGetId @A OUTPUT这样就不对了吧
      

  8.   

    回复人: jimmy83(蝈蝈) ( ) 信誉:100  2005-08-26 15:59:00  得分: 0  
     
     
       to pjy(古虫):在prGetId里@A是输入参数
    Exec prGetId @A OUTPUT这样就不对了吧
      
     
    ---简单问题,不过要里清楚思路
    你说@A是输入参数,那么就是要传入一个值进去,
    如果没有设置默认值,那么你必须要显式传入一个值,
    你有一个输出,如果你也设置一个默认值,那么你可以不定义一个变量来存取
    Declare @A int
    Declare @B int
    set @A = '**'
    Exec prGetId @A,@B OUTPUT --这个output要写
    print @B你说的a=b,那要看你用在赋值语句,还是放在逻辑判断语句
    如果是赋值,那么是set @A= @B,变量才可以如此用法
    你这种a=b是出现在逻辑判断里面的