求解释一段tsql脚本

发布于 2022-09-02 15:18:08 字数 422 浏览 13 评论 0

数据库

sqlserver2008

代码

if (select count(1) from dt_user where user_serial = @user_serial) = 0
    begin

        select 2    
        if(@lx = 2)
        begin
            print '人员不存在!'    
        end
        return
        
    end

问题
select 2是返回值为2的结果吗,用return不行吗,两者返回结果和用output参数值返回有什么不一样?
另外,为什么一直加begin、end?
最后return是不是停止执行的意思?

plsql用的少,高手帮忙解释一下

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浪漫人生路 2022-09-09 15:18:08

select count(1) from dt_user where user_serial = @user_serial
是取满足user_serial = @user_serial的记录行数

select 2 --就是单纯输入一行且一列值为2的记录,

if(@lx = 2)
        begin
            print '人员不存在!'    
        end
        return

如果变量@lx的值为2则在message窗口打印"人员不存在!" 并不是返回的
return 退出过程,默认为0

说实话你的代码究竟干啥看不出,首先
if (select count(1) from dt_user where user_serial = @user_serial) = 0
如果目的是为想判断未找到符合的记录应该是用EXIST来判断,不会得到0

@lx的来源也不清楚
if(@lx = 2)满足仅print,实际是啥也没做

情深缘浅 2022-09-09 15:18:08

初学oracle,pl/sql不久,我简单回答一下。

“select 2是要返回值吗,用return不行吗,两者返回值和用output参数返回有什么不一样?”

select 2当然是返回值,用return当然不行啦,return的话就直接退出当前存储过程了。
return,select 2 和output 参数当然有区别,一个通常用于函数返回值(因为函数只有一个返回值),select 2用于查找出列为2,值为2的表,output通常用于 存储过程中,因为存储过程可以返回多个输出值,所以也可以指定多个output参数变量。

“为什么一直加begin、end?”
没有为什么,规定,就像php需要加<?php ooxx ?> ,html需要加<html>ooxx</html>一样

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文