第一种
ALTER PROCEDURE B_EMPLOYEE_PWD_VAR @ID bigint,
@UserPwd nvarchar(12)

AS
/*验证用户密码*/
SELECT UserPwd
FROM B_Employee
WHERE (ID = @ID) AND (UserPwd = @UserPwd)第二种
ALTER PROCEDURE B_EMPLOYEE_PWD_VAR @ID bigint,
@UserPwd nvarchar(12)

ASDeclare @a nvarchar(12) /*验证用户密码*/
SELECT @a=UserPwd
FROM B_Employee
WHERE (ID = @ID) AND (UserPwd = @UserPwd)
        RETURN @a这俩中方法得到的结果是不是一样啊?在C#中都能调用到这俩中方法的结果?

解决方案 »

  1.   

    不是..RETURN一般用于返回一个状态值..即返回该过程是否执行成功,错误啊..这些..
      

  2.   

    用第一個;通常用以下
    ALTER PROCEDURE B_EMPLOYEE_PWD_VAR@ID bigint,
    @UserPwd nvarchar(12),
    @a int outputAS
    /*验证用户密码*/
    SELECT @a=UserPwd
    FROM B_Employee
    WHERE (ID = @ID) AND (UserPwd = @UserPwd)
      

  3.   


    ALTER PROCEDURE B_EMPLOYEE_PWD_VAR @ID bigint, 
    @UserPwd nvarchar(12), 
    @a nvarchar(12) output
    AS /*验证用户密码*/ 
    SELECT @a=UserPwd 
    FROM B_Employee 
    WHERE (ID = @ID) AND (UserPwd = @UserPwd) 
    RETURN @a 
      

  4.   

    是不一样的,
    第一种方法返回的是一个结果集,尤其是查物品列表的使用比较多
    第二种就如同函数一样
    根据你的定义,Declare @a nvarchar(12)
    只是返回一个字串而已
      

  5.   

    如果有output必須用return
    其他的時候可以用Select
      

  6.   

    一个是返回结果集
    一个是返回状态,int型
      

  7.   


    但@a=UserPwd啊那你的意思是不是当返回的结果集中只有一条记录时,俩种方法一样返回的结果集中有多条记录时,它们就不一样了
      

  8.   

    這return的確是可有可無,沒啥用
      

  9.   

    返回数据集的话最后SELECT一下就OK了.也没有必要深刻理解.exec一下就知道了.