SQL 存儲過程的幾種返回值方法
系統
2019-08-29 22:56:51
1743 0
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’)
SQL 存儲過程的幾種返回值方法
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】 元
喜歡作者
我中意的幾本書籍 存儲過程 設置鎖級別set transaction isolation