存储过程的输出参数,返回值与结果集

每个存储过程都有认的返回值,认值为0。下面我们分别看看在management studio中如何查看输出参数,返回值以及结果集,然后我们再在ASP.NET调用存储过程中如何获得输出参数,返回值以及结果集。 首先:在sql server management studio中查看输出参数,返回值以及结果集。本示例以northwind数据库为例。
<div class="codetitle"><a style="CURSOR: pointer" data="8709" class="copybut" id="copybut8709" onclick="doCopy('code8709')"> 代码如下:

<div class="codebody" id="code8709">
create proc Employee
@Rowcount int=0 output
as
begin
SELECT * FROM [northwind].[dbo].[Employees]
set @Rowcount=@@ROWCOUNT
end

运行以上存储过程的代码如下:
运行代码
<div class="codetitle"><a style="CURSOR: pointer" data="423" class="copybut" id="copybut423" onclick="doCopy('code423')"> 代码如下:
<div class="codebody" id="code423">
USE [northwind]
GO
DECLARE @return_value int,
@MyOutput int
EXEC @return_value = [dbo].[Employee]
@Rowcount = @MyOutput OUTPUT
SELECT @MyOutput as N'输出参数的值'
SELECT 'Return返回的值' = @return_value
GO

输出的结果如下:

可以看出是通过EXEC @return_value = [dbo].[Employee] @Rowcount = @MyOutput OUTPUT中的return_value变量来获得返回值,而用MyOutput变量来获得了输出变量值,此处的MyOutput变量相当于引用传递!
接下来将讨论ASP.NET调用存储过程中如何获得输出参数,返回值以及结果集。 <div class="codetitle"><a style="CURSOR: pointer" data="78397" class="copybut" id="copybut78397" onclick="doCopy('code78397')"> 代码如下:
<div class="codebody" id="code78397">
protected void Page_Load(object sender,EventArgs e)
{
sqlConnection con = new sqlConnection("server=.;database=northwind;uid=sa;pwd=1;");
sqlCommand cmd = new sqlCommand();
cmd.Connection = con;
cmd.CommandText="Employee";
cmd.CommandType = CommandType.StoredProcedure;
sqlParameter para = new sqlParameter("@Rowcount",sqlDbType.Int,4);
para.Direction = ParameterDirection.Output;
cmd.Parameters.Add(para);
cmd.Parameters.Add("@return_value",4);
cmd.Parameters["@return_value"].Direction = ParameterDirection.ReturnValue;
con.open();
cmd.ExecuteNonQuery();
Response.Write(cmd.Parameters["@Rowcount"].Value.ToString()+"
");
Response.Write(cmd.Parameters["@return_value"].Value.ToString());
}

此处定义了Rowcount输出变量,以及return_value返回值变量。输出Roucount输出变量的值为9,而return_value的值为0。

存储过程输出参数

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...