zoukankan      html  css  js  c++  java
  • SQL SERVER 获取存储过程返回值的几种方法

    --(1)不带任何参数的存储过程(存储过程语句中含有return)
    
    --创建存储过程
    CREATE PROCEDURE testReturn
    AS
    return 145
    GO
    --执行存储过程
    DECLARE @RC int
    exec @RC=testReturn
    select @RC
    --说明
    --查询结果为145
    --(2)带输入参数的存储过程(存储过程语句中含有return)
    --创建存储过程
    create procedure sp_add_table1
    @in_name varchar(100),
    @in_addr varchar(100),
    @in_tel varchar(100)
    as
    if(@in_name ='' or @in_name is null)
    return 1
    else
    begin
    insert into #table1(name,addr,tel) values(@in_name,@in_addr,@in_tel)
    return 0
    end
    --执行存储过程
    --<1>执行下列,返回1
    declare @count int exec @count = sp_add_table1 '','中三路','123456' select @count
    --<2>执行下列,返回0
    declare @count int exec @count = sp_add_table1 '','中三路','123456' select @count
    --说明
    --查询结果不是0就是1
    --(3)带输出参数的存储过程(存储过程中可以有return可以没有return)
    
    --例子A:
    --创建存储过程
    create procedure sp_output
    @output int output
    as
    set @output = 121
    return 1
    --执行存储过程
    --<1>执行下列,返回121
    declare @out int
    exec sp_output @out output
    select @out
    --<2>执行下列,返回1
    declare @out int
    declare @count int
    exec @count = sp_output @out output
    select @count
    --说明
    --有return,只要查询输出参数,则查询结果为输出参数在存储过程中最后变成的值;只要不查询输出参数,则查询结果为return返回的值
    
    --例子B:
    --创建存储过程
    create procedure sp_output
    @output int output
    as
    set @output = 121
    --执行存储过程
    --<1>执行下列,返回121
    declare @out int
    exec sp_output @out output
    select @out
    --<2>执行下列,返回0
    declare @out int
    declare @count int
    exec @count = sp_output @out output
    select @count
    --说明
    --没有return,只要查询输出参数,则查询结果为输出参数在存储过程中最后变成的值;只要不查询输出参数,则查询结果为0
    --3.Select数据集返回值
    CREATE PROCEDURE [dbo].[upInformation](
    @id int
    )
    AS
    BEGIN
    SET NOCOUNT ON;
    SELECT id,age FROM [Information]
    WHERE id = @id
    GO
    
    --存储过程中获得方法:(使用临时表)
    CREATE TABLE [dbo].[Temp](
    [id] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
    [age] [int] NOT NULL
    )
    INSERT [Temp] EXEC [nb_order_select] @id
    – 这时 Temp 就是EXEC执行SELECT 后的结果集
    SELECT * FROM [Temp]
    DROP [Temp] — 删除临时表
  • 相关阅读:
    前端编程之jQuery
    当nfs-server宕机后,client端执行 df -h hang
    git 设置默认推送和拉去的分支
    python2 中字符串转成字典后汉字出现乱码
    1.in_k8s
    部署etcd中使用ansible进行变量初始化
    获取aliyun固定类型的domain记录并输出到文件
    jumpserver 1.3x 版本忘记MFA的如何解决
    pistat 查看进程状态
    iostat 命令
  • 原文地址:https://www.cnblogs.com/Bokeyan/p/14073429.html
Copyright © 2011-2022 走看看