1. 程式人生 > >使用儲存過程並返回值與及返回值的獲得方法

使用儲存過程並返回值與及返回值的獲得方法

使用儲存過程並返回值與及返回值的獲得方法

CREATE TABLE [dbo].[Order]( [o_id] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, [o_buyerid] [int] NOT NULL )

1.OUPUT引數返回值例:

 向Order表插入一條記錄,返回其標識

CREATE PROCEDURE [dbo].[nb_order_insert]

( @o_buyerid int ,

@o_id bigint OUTPUT

)

 AS

BEGIN

SET NOCOUNT ON;

BEGIN

INSERT INTO [Order](o_buyerid ) VALUES (@o_buyerid )

 SET @o_id = @@IDENTITY END

END

儲存過程中獲得方法:

DECLARE

@o_buyerid int DECLARE

@o_id bigint EXEC [nb_order_insert]

 @o_buyerid ,o_id bigint

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’)