• 使用存储过程并返回值与及返回值的获得方法


    转载:

    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’)
  • 相关阅读:
    如何在页面加载完成后再去做某事?什么方法可以判断当前页面加载已完成?
    让MySQL支持Emoji表情
    mysql utf8mb4与emoji表情
    移动前端手机输入法自带emoji表情字符处理
    统计网站的每日访问量
    yii中登录后跳转回登录前请求的页面
    YII相关资料(干货)
    [2014-08-24]为 Xamarin Studio 创建的 Asp.Net Mvc 项目配置 gitignore
    [2014-08-28]Mac系统上的几个命令解释器(控制台)
    [2014-08-18]初尝 AspNet vNext On Mac
  • 原文地址:https://www.cnblogs.com/jingRegina/p/6474741.html
Copyright © 2020-2023  润新知