存儲過程的輸出參數(shù),返回值與結(jié)果集
更新時間:2010年06月29日 15:55:52 作者:
存儲過程中可以定義輸出變量,返回值,執(zhí)行存儲過程還能獲得結(jié)果集。
每個存儲過程都有默認(rèn)的返回值,默認(rèn)值為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
運(yùn)行以上存儲過程的代碼如下:
運(yùn)行代碼
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變量相當(dāng)于引用傳遞!
接下來將討論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
運(yùn)行以上存儲過程的代碼如下:
運(yùn)行代碼
復(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變量相當(dāng)于引用傳遞!
接下來將討論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)文章
SQLserver中用convert函數(shù)轉(zhuǎn)換日期格式的方法
SQL Server中文版的默認(rèn)的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm,整理了一下SQL Server里面可能經(jīng)常會用到的日期格式轉(zhuǎn)換方法2013-01-01
ms sql server中實(shí)現(xiàn)的unix時間戳函數(shù)(含生成和格式化,可以和mysql兼容)
這篇文章主要介紹了ms sql server中實(shí)現(xiàn)的unix時間戳函數(shù),含生成和格式化UNIX_TIMESTAMP、from_unixtime兩個函數(shù),可以和mysql兼容,需要的朋友可以參考下2014-07-07
SQL中的開窗函數(shù)詳解可代替聚合函數(shù)使用
這篇文章主要介紹了SQL中的開窗函數(shù)詳解可代替聚合函數(shù)使用,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
SQL Server查看login所授予的具體權(quán)限問題
在SQL Server數(shù)據(jù)庫中如何查看一個登錄名(login)的具體權(quán)限呢,下面腳本之家小編給大家?guī)砹薙QL Server查看login所授予的具體權(quán)限問題,感興趣的朋友一起看看吧2019-09-09
SQL Server如何通過SQL語句直接操作另一臺服務(wù)器上的SQL SERVER的數(shù)據(jù)
這篇文章主要介紹了SQL Server如何通過SQL語句直接操作另一臺服務(wù)器上的SQL SERVER的數(shù)據(jù),需要的朋友可以參考下2022-10-10
實(shí)現(xiàn)按關(guān)健字模糊查詢,并按匹配度排序的SQL語句
SQL語句實(shí)現(xiàn)按關(guān)健字模糊查詢,并按匹配度排序2009-09-09
sqlserver 批量刪除存儲過程和批量修改存儲過程的語句
sqlserver 批量刪除存儲過程和批量修改存儲過程的語句,需要的朋友可以參考下。2011-07-07
centos7部署SqlServer2019的實(shí)現(xiàn)步驟
最近工作需要,需要在服務(wù)器上部署一個sql server 數(shù)據(jù)庫,本文主要介紹了centos7部署SqlServer2019的實(shí)現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下2024-01-01

