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’)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章