执行存储过程返回值
❶ 有返回值的存储过程怎么在命令行执行
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的执行结果