sqlserver,获取调用存储过程返回数据的方法。
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,获取调用存储过程返回数据的方法。的更多相关文章
- jquery中获取ajax请求返回数据的方法
function getPageTotalAndDataTotal(page) { //设置一个变量用于接收ajax返回的值 var pageTotal = 0; // 获取页数与数据总数 $.aja ...
- myabatis oracle 调用存储过程返回list结果集
Mapper.xml 配置 <resultMap type="emp" id="empMap"> <id property="emp ...
- vue 父组件主动获取子组件的数据和方法 子组件主动获取父组件的数据和方法
Header.vue <template> <div> <h2>我是头部组件</h2> <button @click="getParen ...
- Oracle数据库实现获取前几条数据的方法
如何在Oracle数据库中实现获取前几条数据的方法呢?就是类似SQL语句中的SELECT TOP N的方法.本文将告诉您答案,举例说明了哟! 1.在Oracle中实现SELECT TOP N : ...
- HttpClient get和HttpClient Post请求的方式获取服务器的返回数据
1.转自:https://blog.csdn.net/alinshen/article/details/78221567?utm_source=blogxgwz4 /* * 演示通过HttpClie ...
- vue.js 父组件主动获取子组件的数据和方法、子组件主动获取父组件的数据和方法
父组件主动获取子组件的数据和方法 1.调用子组件的时候 定义一个ref <headerchild ref="headerChild"></headerchild& ...
- PostgreSQL 调用存储过程返回结果集
创建返回结果集类型的存储过程: CREATE OR REPLACE FUNCTION public.f_get_member_info( id integer, productname charact ...
- vue--子组件主动获取父组件的数据和方法
子组件主动获取父组件的数据和方法 简单示例: this.$parent.数组 this.$parent.方法 示例: <template> <div id="Header& ...
- Vue父组件主动获取子组件的数据和方法
Vue父组件主动获取子组件的数据和方法 https://www.jianshu.com/p/bf88fc809131
随机推荐
- centos 命令行修改主机名
# vi /etc/sysconfig/network # 把localhost.localdomain 修改为 localhost.com # 保存退出 # vi /etc/hosts # 把loc ...
- .NET Core CLI
NET Core 命令 一. 帮助命令 dotnet help 使用情况: dotnet [sdk-options] [command] [command-options] [arguments] 执 ...
- ubantu启动盘制作
转载自http://jingyan.baidu.com/article/b24f6c82cf50e086bfe5dae9.html 1 首先打开UltraISO软件,没有的请百度搜索,下载安装,尽量下 ...
- Educational Codeforces Round 30 B【前缀和+思维/经典原题】
B. Balanced Substring time limit per test 1 second memory limit per test 256 megabytes input standar ...
- codevs 方格取数
1043 方格取数 2000年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Descri ...
- Codeforces Round #394 (Div. 2) C. Dasha and Password(简单DP)
C. Dasha and Password time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- MongoError: topology was destroyed解决方法
MongoError: topology was destroyed 分析得出,出现这个问题是因为,当mongodb尝试写入某个数据的时候,连接被中断了! 解决方法:检查代码中是否存在操作数据的过程中 ...
- English distilled
[ Any question about the job]关于辞职原因 1. What are the main objectives and responsibilities of the posi ...
- Combination Sum IV -- LeetCode
Given an integer array with all positive numbers and no duplicates, find the number of possible comb ...
- 【二维单调队列】BZOJ1047-[HAOI2007]理想的正方形
[题目大意] 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小. [思路] 裸的二维单调队列.二维单调队列的思路其实很简单: (1)对于每 ...