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;
INSERT INTO [Order](o_buyerid )
VALUES (@o_buyerid )
SET @o_id = @@IDENTITY
END
存儲過程中獲得方法:
DECLARE @o_buyerid int
DECLARE @o_id bigint
EXEC [nb_order_insert] @o_buyerid ,o_id bigint
2 RETURN過程傳回值
IF(EXISTS(SELECT * FROM [Shop] WHERE [s_id] = @o_shopid))
RETURN 1 — 插入成功傳回1
ELSE
RETURN 0 — 插入失敗傳回0
存儲過程中的擷取方法
DECLARE @result bit
EXEC @result = [nb_order_insert] @o_buyerid ,o_id bigint
3.SELECT 資料集傳回值
CREATE PROCEDURE [dbo].[nb_order_select](
@o_id int
SELECT o_id,o_buyerid FROM [Order]
WHERE o_id = @o_id
GO
存儲過程中的擷取方法:
3.1使用臨時表
CREATE TABLE [dbo].[Temp](
INSERT [Temp] EXEC [nb_order_select] @o_id
– 這時 Temp 就是EXEC執行SELECT 後的結果集
SELECT * FROM [Temp]
DROP [Temp] — 删除臨時表
3.2使用openrowset(不過就是速度不怎麼樣)
SELECT * from openrowset(’provider_name','Trusted_Connection=yes’,'exec nb_order_select’)
本文轉自sucre03 51CTO部落格,原文連結:http://blog.51cto.com/sucre/380219,如需轉載請自行聯系原作者