存儲過程的輸出參數(shù),返回值與結(jié)果集
更新時間:2010年06月29日 15:55:52 作者:
存儲過程中可以定義輸出變量,返回值,執(zhí)行存儲過程還能獲得結(jié)果集。
每個存儲過程都有默認的返回值,默認值為0。下面我們分別看看在management studio中如何查看輸出參數(shù),返回值以及結(jié)果集,然后我們再在ASP.NET調(diào)用存儲過程中如何獲得輸出參數(shù),返回值以及結(jié)果集。
首先:在sql server management studio中查看輸出參數(shù),返回值以及結(jié)果集。本示例以Northwind數(shù)據(jù)庫為例。
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'輸出參數(shù)的值'
SELECT 'Return返回的值' = @return_value
GO
輸出的結(jié)果如下:

可以看出是通過EXEC @return_value = [dbo].[Employee] @Rowcount = @MyOutput OUTPUT中的return_value變量來獲得返回值,而用MyOutput變量來獲得了輸出變量值,此處的MyOutput變量相當于引用傳遞!
接下來將討論ASP.NET調(diào)用存儲過程中如何獲得輸出參數(shù),返回值以及結(jié)果集。
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()+"<br/>");
Response.Write(cmd.Parameters["@return_value"].Value.ToString());
}
此處定義了Rowcount輸出變量,以及return_value返回值變量。輸出Roucount輸出變量的值為9,而return_value的值為0。
首先:在sql server management studio中查看輸出參數(shù),返回值以及結(jié)果集。本示例以Northwind數(shù)據(jù)庫為例。
復(fù)制代碼 代碼如下:
create proc Employee
@Rowcount int=0 output
as
begin
SELECT * FROM [Northwind].[dbo].[Employees]
set @Rowcount=@@ROWCOUNT
end
運行以上存儲過程的代碼如下:
運行代碼
復(fù)制代碼 代碼如下:
USE [Northwind]
GO
DECLARE @return_value int,
@MyOutput int
EXEC @return_value = [dbo].[Employee]
@Rowcount = @MyOutput OUTPUT
SELECT @MyOutput as N'輸出參數(shù)的值'
SELECT 'Return返回的值' = @return_value
GO
輸出的結(jié)果如下:

可以看出是通過EXEC @return_value = [dbo].[Employee] @Rowcount = @MyOutput OUTPUT中的return_value變量來獲得返回值,而用MyOutput變量來獲得了輸出變量值,此處的MyOutput變量相當于引用傳遞!
接下來將討論ASP.NET調(diào)用存儲過程中如何獲得輸出參數(shù),返回值以及結(jié)果集。
復(fù)制代碼 代碼如下:
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()+"<br/>");
Response.Write(cmd.Parameters["@return_value"].Value.ToString());
}
此處定義了Rowcount輸出變量,以及return_value返回值變量。輸出Roucount輸出變量的值為9,而return_value的值為0。
相關(guān)文章
如何創(chuàng)建SQL Server 2000故障轉(zhuǎn)移群集
如何創(chuàng)建SQL Server 2000故障轉(zhuǎn)移群集...2007-01-01
SQL Server誤區(qū)30日談 第3天 即時文件初始化特性可以在SQL Server中開啟和關(guān)閉
即時文件初始化是一個在SQL Server 2005以及之上的版本鮮為人知的特性。這個特性允許數(shù)據(jù)文件(僅僅是數(shù)據(jù)文件,不包括日志文件)初始化的過程跳過填0初始化過程。這種方式是在發(fā)生災(zāi)難時大大減少Downtime的好辦法---在恢復(fù)數(shù)據(jù)庫時由于免去了填0初始化的過程而直接開始恢復(fù)過程2013-01-01
sql將一個表中的數(shù)據(jù)插入到另一個表中的方法
這篇文章主要介紹了sql將一個表中的數(shù)據(jù)插入到另一個表中的方法,需要的朋友可以參考下2014-03-03
SQL Server根據(jù)分區(qū)表名查找所在的文件及文件組實現(xiàn)腳本
這篇文章主要介紹了SQL Server根據(jù)分區(qū)表名查找所在的文件及文件組實現(xiàn)腳本,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-07-07
有關(guān)數(shù)據(jù)庫SQL遞歸查詢在不同數(shù)據(jù)庫中的實現(xiàn)方法
這篇文章主要介紹了有關(guān)數(shù)據(jù)庫SQL遞歸查詢在不同數(shù)據(jù)庫中的實現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下2015-10-10
sqlserver 合并列數(shù)據(jù)的實現(xiàn)
本文主要介紹了sqlserver 合并列數(shù)據(jù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-01-01

