您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页sqlserver获取存储过程返回值

sqlserver获取存储过程返回值

来源:爱go旅游网


sqlserver获取存储过程返回值

1.OUPUT参数返回值

[sql] view plaincopyprint?

1. CREATE PROCEDURE [dbo].[nb_order_insert](

2. @o_buyerid int ,

3. @o_id bigint OUTPUT

4. )

5. AS

6. BEGIN

7. SET NOCOUNT ON;

8. BEGIN

9. INSERT INTO [Order](o_buyerid )

10. VALUES (@o_buyerid )

11. SET @o_id = @@IDENTITY

12. END

13. END

存储过程中获得方法:

DECLARE @o_buyerid int

DECLARE @o_id bigint

EXEC [nb_order_insert] @o_buyerid,@o_id output

2.RETURN过程返回值

CREATE PROCEDURE [dbo].[nb_order_insert](

@o_buyerid int ,

@o_id bigint OUTPUT

)

AS

BEGIN

SET NOCOUNT ON;

IF(EXISTS(SELECT * FROM [Shop] WHERE [s_id] = @o_shopid))

BEGIN

INSERT INTO [Order](o_buyerid )

VALUES (@o_buyerid )

SET @o_id = @@IDENTITY

RETURN 1 — 插入成功返回1

END

ELSE

RETURN 0 — 插入失败返回0

END

存储过程中的获取方法

DECLARE @o_buyerid int

DECLARE @o_id bigint

DECLARE @result bit

EXEC @result = [nb_order_insert] @o_buyerid ,o_id bigint

3.SELECT 数据集返回值

CREATE PROCEDURE [dbo].[nb_order_select](

@o_id int

)

AS

BEGIN

SET NOCOUNT ON;

SELECT o_id,o_buyerid FROM [Order]

WHERE o_id = @o_id

GO

存储过程中的获取方法

(1)、使用临时表的方法

CREATE TABLE [dbo].[Temp](

[o_id] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,

[o_buyerid] [int] NOT NULL

)

INSERT [Temp] EXEC [nb_order_select] @o_id

– 这时 Temp 就是EXEC执行SELECT 后的结果集

SELECT * FROM [Temp]

DROP [Temp] — 删除临时表

(2)、速度不怎么样.(不推荐)

SELECT * from openrowset(’provider_name','Trusted_Connection=yes’,'exec nb_order_select’)

1.获取Return返回值

//存储过程

//Create PROCEDURE MYSQL

// @a int,

// @b int

//AS

// return @a + @b

//GO

SqlConnection conn = new

SqlConnection(ConfigurationManager.ConnectionStrings[\"LocalSqlServer\"].ToString());

conn.Open();

SqlCommand MyCommand = new SqlCommand(\"MYSQL\

MyCommand.CommandType = CommandType.StoredProcedure;

MyCommand.Parameters.Add(new SqlParameter(\"@a\

MyCommand.Parameters[\"@a\"].Value = 10;

MyCommand.Parameters.Add(new SqlParameter(\"@b\

MyCommand.Parameters[\"@b\"].Value = 20;

MyCommand.Parameters.Add(new SqlParameter(\"@return\

MyCommand.Parameters[\"@return\"].Direction = ParameterDirection.ReturnValue;

MyCommand.ExecuteNonQuery();

Response.Write(MyCommand.Parameters[\"@return\"].Value.ToString());

2.获取Output输出参数值

//存储过程

//Create PROCEDURE MYSQL

// @a int,

// @b int,

// @c int output

//AS

// Set @c = @a + @b

//GO

SqlConnection conn = new

SqlConnection(ConfigurationManager.ConnectionStrings[\"LocalSqlServer\"].ToString());

conn.Open();

SqlCommand MyCommand = new SqlCommand(\"MYSQL\

MyCommand.CommandType = CommandType.StoredProcedure;

MyCommand.Parameters.Add(new SqlParameter(\"@a\

MyCommand.Parameters[\"@a\"].Value = 20;

MyCommand.Parameters.Add(new SqlParameter(\"@b\

MyCommand.Parameters[\"@b\"].Value = 20;

MyCommand.Parameters.Add(new SqlParameter(\"@c\

MyCommand.Parameters[\"@c\"].Direction = ParameterDirection.Output;

MyCommand.ExecuteNonQuery();

Response.Write(MyCommand.Parameters[\"@c\"].Value.ToString());

C#接收存储过程返回值:

public static int User_Add(User us)

{

int iRet;

SqlConnection conn = new SqlConnection(Conn_Str);

SqlCommand cmd = new SqlCommand(\"User_Add\

cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.AddWithValue(\"@UName\

cmd.Parameters.AddWithValue(\"@UPass\

cmd.Parameters.AddWithValue(\"@PassQuestion\

cmd.Parameters.AddWithValue(\"@PassKey\

cmd.Parameters.AddWithValue(\"@Email\

cmd.Parameters.AddWithValue(\"@RName\

cmd.Parameters.AddWithValue(\"@Area\

cmd.Parameters.AddWithValue(\"@Address\

cmd.Parameters.AddWithValue(\"@ZipCodes\

cmd.Parameters.AddWithValue(\"@Phone\

cmd.Parameters.AddWithValue(\"@QQ\

cmd.Parameters.Add(\"@RETURN_VALUE\ParameterDirection.ReturnValue;

try

{

conn.Open();

cmd.ExecuteNonQuery();

iRet = (int)cmd.Parameters[\"@RETURN_VALUE\"].Value;

}

catch (SqlException ex)

{

throw ex;

}

finally

{

conn.Close();

}

return iRet;

}

C#接收存储过程输出参数:

public static decimal Cart_UserAmount(int UID)

{

decimal iRet;

SqlConnection conn = new SqlConnection(Conn_Str);

SqlCommand cmd = new SqlCommand(\"Cart_UserAmount\

cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.AddWithValue(\"@UID\

cmd.Parameters.Add(\"@Amount\

SqlDbType.Decimal).Direction=ParameterDirection.Output;

try

{

conn.Open();

cmd.ExecuteNonQuery();

iRet = (decimal)cmd.Parameters[\"@Amount\"].Value;

}

catch (SqlException ex)

{

throw ex;

}

finally

{

conn.Close();

}

return iRet;

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务