首页 > 数据库 >SQL SERVER 获取存储过程返回值

SQL SERVER 获取存储过程返回值

时间:2023-08-28 21:22:35浏览次数:47  
标签:buyerid int nb SERVER bigint SQL 返回值 order id

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’)

 

标签:buyerid,int,nb,SERVER,bigint,SQL,返回值,order,id
From: https://www.cnblogs.com/lgx5/p/17663406.html

相关文章

  • 查询SQL Server数据库执行时间最长的sql语句
    SELECT(total_elapsed_time/execution_count)/1000N'平均时间ms',total_elapsed_time/1000N'总花费时间ms',total_worker_time/1000N'所用的CPU总时间ms',total_physical_readsN'物理读取总次数',total_logical_reads/execution_countN'每次......
  • metrics-server部署后执行kubectl top node报错:the server is currently unable to ha
    问题描述执行kubectltopnode报错:查看v1beta1.metrics.k8s.io详情发现如下错误:kubectldescribeapiservicev1beta1.metrics.k8s.io请求metrics接口(返回结果为401):curl-khttps://172.16.6.10:8443/apis/metrics.k8s.io/v1bea1查看metrics-serverpod日志报错如下:问题处理经过以......
  • Arch中使用Qt6的QtSql出现mysql driver not loaded的解决记录
    查阅了网上的说法,出现这个错误的原因大致可能有以下几种:Qt和mysql的位数不一样,一个是32位的,一个是64位的Qt中自带的驱动库与所使用的版本不匹配代码写错了,比如"QMYSQL"写成了"MYSQL"我出现个问题的原因是第二种。参考了一位老哥的博客QTMacM1解决mysqldrivernotloade......
  • MySQL的连接和导出数据分析和lift曲线
    MySQL的连接和使用https://www.cnblogs.com/zdstudy/p/16567399.htmlmysql使用网址https://blog.csdn.net/LikiLyn/article/details/120385981多个文件mergeimportpandasaspdimportnumpyasnpimportpymysql#%%打开数据库连接conn=pymysql.connect(host='地址',user......
  • mysql日志追踪 / 数据恢复
    1.查看日志开启状态showvariableslike'log_%';2.查看日志文件列表showbinarylogs;或者showmasterlogs;3.查看当前日志index位置showmasterstatus;4.查看binlog关键事件showbinlogevents[IN'log_name'][FROMpos][LIMIT[offset,]row_c......
  • ProxySQL简介
    ProxySQL是基于MySQL的一款开源的中间件的产品,是一个灵活的MySQL代理层,可以实现读写分离,支持Query路由功能,支持动态指定某个SQL进行缓存,支持动态加载(无需重启ProxySQL服务),故障切换和一些SQL的过滤功能。多层配置结构disk->是sqlite3数据库,默认位置是$DATADIR/pro......
  • MySQL online DDl原理
    onlineDDL从5.6开始,不阻塞DML但是会阻塞所有的DDL,online有三种模式:INSTANT(8.0.12),INPLACE(rebuild),INPLACE(no-rebuild),具体操作如下:1、只修改表的元数据信息删除二级索引修改索引名(5.7)修改字段名设置(删除)字段的默认值增加varchar长度,如果表示字符串长度的字节数变化则会使用c......
  • PostgreSQL-可以通过localhost连接,无法通过IP地址连接。
    (1)如果PostgreSQL配置文件中没有允许访问该服务器的IP地址,则需要先添加允许访问的IP地址,并在防火墙中开放相应的端口。(2)在PostgreSQL配置文件postgresql.conf中,找到以下行:listen_addresses='localhost'将localhost改为*,表示允许任何IP地址访问该服务器。如果只允许特定的IP地址......
  • 牛客网——SQL218 获取所有非manager员工当前的薪水情况
    描述有一个员工表employees简况如下:emp_nobirth_datefirst_namelast_namegenderhire_date100011953-09-02GeorgiFacelloM1986-06-26100021964-06-02BezalelSimmelF1996-08-03有一个,部门员工关系表dept_emp简况如下:emp_nodept_nofrom_date......
  • SQL的语法知识
     1.全表查询  示例:select*from表名2.选择查询 选择特定的列或者字段示例:selectname,age表名3.查询别名 {原始字段名}as{别名}示例:selectnameas'学生姓名' 表名4.查询常量和运算  加减乘除、取平均值、连接文本等示例:selectname,score,score/2......