create proc autoadd
(
@outid varchar(100) output
)
as
begin
declare @inid int
declare @sid varchar(50)
declare @dat varchar(50)
select @inid=max(rcid) from person --得到最大的rcid值
set @inid = @inid+1 --对@inid 进和累加
set @inid = 1000000000+@inid
set @sid = right(cast(@inid as varchar(50)),9) --从字符串的右边截取9个字符
select@dat = convert(varchar(50),getdate(),112) --将日期转换成字符型 得到的结果为:20070319
--select @dat=convert(varchar(50),getdate(),110) --得到的结果为:03-30-2007
set @outid = 'rc'+@dat+@sid --最终生成人才ID号(唯一)
end
GO
如下是在程序的cs代码中来执行此存储过程:
string c=System.Configuration.ConfigurationSettings.AppSettings["P_Con"].ToString().Trim();
SqlConnection sqlconn=new SqlConnection(c);
SqlCommand cmd = new SqlCommand();
cmd.Connection= sqlconn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText="autoadd"; --存储过程名
//=================================================================
SqlParameter paout = new SqlParameter("@outid",SqlDbType.VarChar,100);
paout.Direction = ParameterDirection.Output; --指定参数类别为 "output"
cmd.Parameters.Add(paout);
//===============================================================
sqlconn.Open();
cmd.ExecuteNonQuery();
sqlconn.Close();
values = Convert.ToString(paout.Value); //得到存储过程返回的参数
Response.Write(values);
//*********************************************************************
}
catch(Exception ex)
{
Response.Write(ex.Message.ToString());
}