1,获取存储过程最后select返回的结果集。SELECT 数据集返回值

因为select返回的结果是一个表。所以返回的结果需要用一个表接收。使用临时表接收。

被调用的存储过程最后是这样:返回了一个空标题的字段。

什么都不处理,调用存储过程,发现是这样:

ALTER PROCEDURE [LC0**999].[ERP_***_CreateBatchCode]
(
@MaterialID varchar(50),
@CompanyID varchar(50),
@Flag varchar(50),
@PrefixObj varchar(50)
)
AS
BEGIN
declare @v_batchcode varchar(36);
exec @v_batchcode=erp_IM_BatchesSN_CreateCode @MaterialID,@CompanyID,@Flag,@PrefixObj; select @v_batchcode BATCHCODE;
END

执行结果:

会发现返回了三个数据集,不仅原来的存储过程会返回一个数据集(这里的情况是不需要那个存储过程返回,而是赋值给变量,由变量返回),这里调用原来的存储过程也并没有真正赋值给变量。所有返回的变量的值仍然为空。

我们真正的需求是只返回一个被赋值了的BATCHCODE。

修改:用临时表接收返回结果集,把临时表的相关字段赋值给变量。如下:

ALTER PROCEDURE [LC00****].[ERP_****_CreateBatchCode]
(
@MaterialID varchar(50),
@CompanyID varchar(50),
@Flag varchar(50),
@PrefixObj varchar(50)
)
AS
BEGIN declare @v_batchcode varchar(36); CREATE TABLE [LC0019999].[batchtemp](
batchcode varchar(36)
) INSERT batchtemp exec @v_batchcode=erp_IM_BatchesSN_CreateCode @MaterialID,@CompanyID,@Flag,@PrefixObj; SELECT @v_batchcode=batchtemp.batchcode FROM batchtemp; DROP TABLE batchtemp; select @v_batchcode BATCHCODE; END

执行结果:

可见,被调用的存储过程没有返回一个select结果集,并且,值被成功的赋值给变量。只返回了一个数据集。

2,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

3,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_buyerid ))
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 output

sqlserver,获取调用存储过程返回数据的方法。的更多相关文章

  1. jquery中获取ajax请求返回数据的方法

    function getPageTotalAndDataTotal(page) { //设置一个变量用于接收ajax返回的值 var pageTotal = 0; // 获取页数与数据总数 $.aja ...

  2. myabatis oracle 调用存储过程返回list结果集

    Mapper.xml 配置 <resultMap type="emp" id="empMap"> <id property="emp ...

  3. vue 父组件主动获取子组件的数据和方法 子组件主动获取父组件的数据和方法

    Header.vue <template> <div> <h2>我是头部组件</h2> <button @click="getParen ...

  4. Oracle数据库实现获取前几条数据的方法

    如何在Oracle数据库中实现获取前几条数据的方法呢?就是类似SQL语句中的SELECT TOP N的方法.本文将告诉您答案,举例说明了哟!   1.在Oracle中实现SELECT TOP N : ...

  5. HttpClient get和HttpClient Post请求的方式获取服务器的返回数据

    1.转自:https://blog.csdn.net/alinshen/article/details/78221567?utm_source=blogxgwz4 /*  * 演示通过HttpClie ...

  6. vue.js 父组件主动获取子组件的数据和方法、子组件主动获取父组件的数据和方法

    父组件主动获取子组件的数据和方法 1.调用子组件的时候 定义一个ref <headerchild ref="headerChild"></headerchild& ...

  7. PostgreSQL 调用存储过程返回结果集

    创建返回结果集类型的存储过程: CREATE OR REPLACE FUNCTION public.f_get_member_info( id integer, productname charact ...

  8. vue--子组件主动获取父组件的数据和方法

    子组件主动获取父组件的数据和方法 简单示例: this.$parent.数组 this.$parent.方法 示例: <template> <div id="Header& ...

  9. Vue父组件主动获取子组件的数据和方法

    Vue父组件主动获取子组件的数据和方法 https://www.jianshu.com/p/bf88fc809131

随机推荐

  1. Vue CLI3 关闭热替换后出现的warning

    用vue cli3做项目的时候如果开启了typescript的严格模式,在dev server热替换的时候往往就会打出一大堆warning,严重的影响了编译效率.官方并没有提供关闭warning的ap ...

  2. win7 安全模式开启声音

    下载运行这个reg文件 http://files.cnblogs.com/files/bushe/Activate_Sound_in_SafeMode.rar

  3. The 15th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple - J CONTINUE...?

    CONTINUE...? Time Limit: 1 Second      Memory Limit: 65536 KB      Special Judge DreamGrid has  clas ...

  4. uestc1633

    uestc1633 题意 给你一个大小为 \(n\) 的集合 \(S\) ,集合里有 \(n\) 个互不相同正整数,有 \(q\) 个询问,每次询问是否能选择 \(S\) 中的一些数字 ( 同一个数字 ...

  5. 暴力 【p4098】[HEOI2013]ALO

    Description Welcome to ALO ( Arithmetic and Logistic Online).这是一个 VR MMORPG, 如名字所见,到处充满了数学的谜题 现在你拥有 ...

  6. POJ 1741 Tree (点分治)

                                                                        Tree Time Limit: 1000MS   Memory ...

  7. 51nod 多重背包问题(动态规划)

    多重背包问题 一个背包,承量有限为W,有n种物体,第i种物体,价值Vi,占用重量为 Wi,且有Ci件,选择物品若干放入背包,使得总重量不超过背包的承重.总价值最大? 输入 第1行,2个整数,N和W中间 ...

  8. 安装redis扩展

    1.安装redis模块 wget https://codeload.github.com/phpredis/phpredis/zip/php7 unzip php7 cd phpredis-php7/ ...

  9. [BZOJ 1407] Savage

    Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1407 Solution: 由于此题里n的范围很小,因此可以直接从小到大枚举m 那么问题转 ...

  10. [BZOJ 1926] 粟粟的书架

    BZOJ 传送门 Luogu 传送门 BZOJ的sillyB评测机各种无故CE,只好去Luogu上A了o(╯□╰)o Solution: 从数据范围可以发现,这其实是2道题: (1)一个$R*C$的矩 ...