存储过程的输出参数,返回值与结果集
程序员文章站
2022-06-10 14:04:03
...
存储过程中可以定义输出变量,返回值,执行存储过程还能获得结果集。
每个存储过程都有默认的返回值,默认值为0。下面我们分别看看在management studio中如何查看输出参数,返回值以及结果集,然后我们再在ASP.NET调用存储过程中如何获得输出参数,返回值以及结果集。首先:在sql server management studio中查看输出参数,返回值以及结果集。本示例以Northwind数据库为例。
代码如下:
create proc Employee
@Rowcount int=0 output
as
begin
SELECT * FROM [Northwind].[dbo].[Employees]
set @Rowcount=@@ROWCOUNT
end
运行以上存储过程的代码如下:
运行代码
代码如下:
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调用存储过程中如何获得输出参数,返回值以及结果集。
代码如下:
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", SqlDbType.Int, 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。
上一篇: php资料可以用html调用打开吗
推荐阅读
-
Mysql带返回值与不带返回值的2种存储过程写法
-
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
-
Asp Oracle存储过程返回结果集的代码
-
Sql Server 存储过程调用存储过程接收输出参数返回值
-
ASP.Net执行存储过程,SqlDbType.Decimal作为输出参数,没有小数位值的解决办法
-
sqlserver 带输出参数的存储过程
-
EF中调用存储过程,通过临时表返回一个结果集,不能返回的问题
-
创建一个存储过程,以部门号为参数,查询该部门的平均工资,并输出该部门中比平均工资高的员工号、员工名。并且调用该存储过程,要求根据输入部门编号,查询平均工资及输出比平均工资高的员工号、员工名
-
PHP得到mssql的存储过程的输出参数功能实现
-
oracle 存储过程返回 结果集 table形式的案例