• 【转】SQL SERVER 获取存储过程返回值


    1.OUPUT参数返回值

    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 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’)
    转自:http://blog.csdn.net/liangweiwei130/article/details/6691207
  • 相关阅读:
    day7
    11.3NOIP模拟赛
    codeforces 880E. Maximum Subsequence(折半搜索+双指针)
    11.2NOIP模拟赛
    bzoj1483: [HNOI2009]梦幻布丁(vector+启发式合并)
    day9
    codeforces 1006 F(折半搜索)
    codeforces 28D(dp)
    P2210 Haywire(A*)
    4800: [Ceoi2015]Ice Hockey World Championship(折半搜索)
  • 原文地址:https://www.cnblogs.com/xwgli/p/3463722.html
Copyright © 2020-2023  润新知