create proc proc_1
@uid int,
@pwd varchar(255),
@UserName varchar(255) output --用于输出参数
as
select @UserName=UserName from users where uid = @uid and PassWord = @pwd
go我认为没有必要用到“@UserName varchar(255) output”这一句,因为我们在写存储过程的时候不是可以直接读取吗,例如在c#里可以直接用如下代码:            SqlCommand cmd = new SqlCommand("exec proc_1 @uid=1,@pwd=admin",cn.con());
            SqlDataReader sda = cmd.ExecuteReader();
            if (sda.Read())            button2.Text = sda["sex"].ToString();
            button1.Text = sda["name"].ToString();想要输出UserName直接读取sda["name"].ToString()就好了,根本不用在存储过程里写入@UserName varchar(255) output,但我也知道这个东西存在必定有其意义,请大家解除我心中的疑惑,我刚学存储过程,呵呵