執行存儲過程返回值
❶ 有返回值的存儲過程怎麼在命令行執行
sql">--1.OUPUT參數返回值
CREATEPROCEDURE[dbo].[nb_order_insert](
@o_buyeridint,
@o_idbigintOUTPUT
)
AS
BEGIN
SETNOCOUNTON;
BEGIN
INSERTINTO[Order](o_buyerid)
VALUES(@o_buyerid)
SET@o_id=@@IDENTITY
END
END
存儲過程中獲得方法:
DECLARE@o_buyeridint
DECLARE@o_idbigint
EXEC[nb_order_insert]@o_buyerid,@o_idoutput
--2.RETURN過程返回值
CREATEPROCEDURE[dbo].[nb_order_insert](
@o_buyeridint,
@o_idbigintOUTPUT
)
AS
BEGIN
SETNOCOUNTON;
IF(EXISTS(SELECT*FROM[Shop]WHERE[s_id]=@o_shopid))
BEGIN
INSERTINTO[Order](o_buyerid)
VALUES(@o_buyerid)
SET@o_id=@@IDENTITY
RETURN1—插入成功返回1
END
ELSE
RETURN0—插入失敗返回0
END
存儲過程中獲得方法:
DECLARE@o_buyeridint
DECLARE@o_idbigint
DECLARE@resultbit
EXEC@result=[nb_order_insert]@o_buyerid,o_idbigint
以下是程序獲得存儲過程值
1、獲取Output輸出參數值
//存儲過程
//CreatePROCEDUREMYSQL
//@aint,
//@bint,
//@cintoutput
//AS
//Set@c=@a+@b
//GO
SqlConnectionconn=newSqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());
conn.Open();
SqlCommandMyCommand=newSqlCommand("MYSQL",conn);
MyCommand.CommandType=CommandType.StoredProcere;
MyCommand.Parameters.Add(newSqlParameter("@a",SqlDbType.Int));
MyCommand.Parameters["@a"].Value=20;
MyCommand.Parameters.Add(newSqlParameter("@b",SqlDbType.Int));
MyCommand.Parameters["@b"].Value=20;
MyCommand.Parameters.Add(newSqlParameter("@c",SqlDbType.Int));
MyCommand.Parameters["@c"].Direction=ParameterDirection.Output;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@c"].Value.ToString());
2、獲取Return返回值
//存儲過程
//CreatePROCEDUREMYSQL
//@aint,
//@bint
//AS
//return@a+@b
//GO
SqlConnectionconn=newSqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());
conn.Open();
SqlCommandMyCommand=newSqlCommand("MYSQL",conn);
MyCommand.CommandType=CommandType.StoredProcere;
MyCommand.Parameters.Add(newSqlParameter("@a",SqlDbType.Int));
MyCommand.Parameters["@a"].Value=10;
MyCommand.Parameters.Add(newSqlParameter("@b",SqlDbType.Int));
MyCommand.Parameters["@b"].Value=20;
MyCommand.Parameters.Add(newSqlParameter("@return",SqlDbType.Int));
MyCommand.Parameters["@return"].Direction=ParameterDirection.ReturnValue;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@return"].Value.ToString());
❷ 存儲過程裡面執行存儲過程 並且返回值 怎麼寫
以下是我寫的存儲過程,希望在更新後的列表增加一列返回值,更新的owner,email信息若成功,返回sucess,失敗則failer,請高手幫助。USE [Test]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROCEDURE [dbo].[USP_ZJ_Dim]ASSET NOCOUNT ON;BEGINdeclare @StructureType nvarchar(255)declare @CatecodeID nvarchar(255)declare @StructureCode nvarchar(255)declare @Owner nvarchar(255)declare @Email nvarchar(255)declare ZJ_dim cursor for select [StructureType],[CatecodeID],[StructureCode],[Owner],[Email] from test.dbo.lander Open ZJ_Dim Fetch next from ZJ_dim into @StructureType,@CatecodeID,@StructureCode,@Owner,@Email While @@FETCH_STATUS=0 Begin Update dbo.Dim_Structure Set Owner =@Owner,Email=@Email where StructureType=@StructureType and CatecodeID=@CatecodeID and StructureCode=@StructureCode Fetch next from ZJ_dim into @StructureType,@CatecodeID,@StructureCode,@Owner,@Email End Close ZJ_Dim End
❸ 如何使用DataContext.ExecuteCommand並得到執行存儲過程的返回值
SQL Server中存儲過程的返回值不是通過return語句返回的(return語句是在用戶自定義函數中使用的春信),而是通過存儲過程的參數來返回,在定義存儲過程的參數時使用關鍵字output來指定此參數是返回值。
而在調用存儲過程時,也必須使用關鍵字給接返橡收返回值的變數,扒世輪這樣才能在調用時獲得存儲過程的返回值。
示例:
1
2
3
4
create procere dbo.pr_add @a int, @b int, @c int output
as
set @c = @a + @b
go
調用:
1
2
3
declare @v int
execute dbo.pr_add 1, 2, @v output
❹ SQL 取存儲過程的返回值
存儲過程應該有返回值的,
問題應該出現在你vb6的調用語句中(第二個參數是輸出類型的參數,
是否有正確設置).
你可以在查詢分析器中執行此存儲過程,
看看返回的結果.
還有,
此存儲過程中的select語句最好加上top
1限制,
因為你只要判斷是否能選到結果而已:
select
top
1
*
from
tb_package
where
packagenumber=@a
❺ php執行mysql的存儲過程後如何獲取返回值
mysqli_query($db,"SET NAMES utf8"); $result=$db->query("call gxtj($year,$jd)"); // gxtj是mysql的存儲過程名稱 while( $row = $result->滾茄fetch_array(MYSQLI_ASSOC)) //完亂茄成從返回結果集中取出一行{while ($key=key($row)){ //依次取得欄位名$value=current($row); //依次取得字嘩備察段值}}
❻ oracle 中運行存儲過程作為返回值
oracle可以使用out型參數返回值,例如:
--查詢某商品編號是否存在,返回查詢狀態
createorreplaceprocereproc_getGood
(
param_shopIdnumber,--商品編號
param_flagoutnumber--查詢狀態0不存在
)
as
declarev_countnumber(1);
begin
selectcount(*)intov_countfromtb_goodswhereshopid=param_shopid;
ifv_count=0then
param_flag:=0;
else
param_flag:=1;
endif;
end;
❼ 如何調用存儲過程的返回值
存儲過程中的第一個參數 @title 將接收由調用程序指定的輸入值,而第二個參數 @ytd_sales 將向調用程序返回該值。SELECT 語句使用 @title 參數以獲得正確的 ytd_sales 值,並將該值賦予 @ytd_sales 輸出參數。 CREATE PROCEDURE get_sales_for
❽ 怎麼獲取存儲過程的返回值
樓主會在C#中使用存儲過程嗎?
如果會的話,sql執行函數賦值給一個變數就可以了
SqlConnection cnn = new SqlConnection();
cnn.ConnectionString = "Data Source = 數據源;uid=sa;pwd = ;database=資料庫名";
cnn.Open();//資料庫連接
//設置存儲過程參數
SqlParameter prm;
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandType = CommandType.StoredProcere;
cmd.CommandText = "存儲過程名";
//項目類型
prm = new SqlParameter();
prm.ParameterName = "參數名1";
prm.SqlDbType = SqlDbType.VarChar;
prm.Size = 50;
prm.Value = comboBox1.Text;
prm.Direction = ParameterDirection.Input;
cmd.Parameters.Add(prm);
...
//可以繼續設置參數,參數個數由存儲過程的具體內容決定
cmd.ExecuteNonQuery();//執行存儲過程
實際上如果要獲取存儲過程的返回值,只要將上面一句代碼修改成:
int retn = cmd.ExecuteNonQuery();
就可以了
❾ sql 存儲過程返回值 C#
SqlParameter[]
param={new
SqlParameter("@i_out",...};
【param[0].Direction=ParameterDirection.OutPut;】
cmd.Execute...
param[0].value;
//有返回值了。
也就是將param設置為輸出參數,
執行完存儲過程,param裡面就有你的返回值了。
❿ sqlserver2005 存儲過程返回值的問題
返回結果的方式有很多我說兩種,一種是利用存儲過程的參數可以把存儲過程的結果返回,另外一種是在外部接收存儲過程內部return出來的結果。當然啦,還可以在存儲過程內部select要返回的結果。
比如:
createproctest
@p_errormsgvarchar(80)=''out
as
select@p_errormsg='測試'
return-100
go
--------------------------------------------------------------
declare@errorcodeint
declare@errormsgvarchar(80)
exec@errorcode=test@errormsgout
select@errorcodeaserrorcode,@errormsgaserrormsg
--@errorcode是return出來的結果@errormsg是輸出參數@p_errormsg的執行結果