加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SqlServer之代码块相关

发布时间:2020-12-12 13:07:01 所属栏目:MsSql教程 来源:网络整理
导读:一、go语句 Go语句是SqlServer中用来表示当前代码块结束提交并确认结果的语句。 Go语句不能和其他Sql命令卸载同一行上! 定义的局部变量作用域局限在定义它的代码快中,如:在go语句前定义的变量在go语句后面则不可用。 如果一次执行多个用go语句分开的代码

一、go语句

Go语句是SqlServer中用来表示当前代码块结束提交并确认结果的语句。

Go语句不能和其他Sql命令卸载同一行上!

定义的局部变量作用域局限在定义它的代码快中,如:在go语句前定义的变量在go语句后面则不可用。

如果一次执行多个用go语句分开的代码块时,其中一个代码块出错不会影响其他代码块的执行

?

二、Begin……End语句

T-Sql使用begin…end来指定代码块,但是在begin…end中声明的变量在end结束之后还可以使用,直到遇见go语句

begin
declare?@i?int=0
select?@i
end
select?@i
go
select?@i

三、If……eles语句

SQL中的If…else语句和其他编程语言中的语法一样,Sql中的if…else可以不用添加括号。另外SQL中还有if?exists…else和if?not?exists…else的用法

declare?@table?table(?Id?int)
insert?into?@table?values(1)
if(?1=1)?
	select?*?from?@table
else
	select?1
?
if?exists(?select?*?from?@table)
begin
	select?*?from?@table
end
?
if?not?exists(?select?*?from?@table)
begin
	select?*?from?@table
end

四、Case…When…then…else…end语句

Case具有两种格式,简单Case函数和Case搜索函数。

--简单Case函数
CASE?sex
?????????WHEN?'1'?THEN?'男'
?????????WHEN?'2'?THEN?'女'
ELSE?'其他'?END
--Case搜索函数
CASE?WHEN?sex?=?'1'?THEN?'男'
?????????WHEN?sex?=?'2'?THEN?'女'
ELSE?'其他'?END

上面两种格式可以实现相同的功能,但是简单的case相对来说写法比较方便,但是他的功能也就有些限制,如对sex写判断比较的时候就只能选择case搜素函数方式。如下:

CASE?WHEN?sex?>?1?THEN?'男'
?????????WHEN?sex?<?2?THEN?'女'
ELSE?'其他'?END

五、While语句

While循环主要是根据while后边的值来判断循环语句是否继续执行,如下:

declare?@var_a?int?=?10
while(?@var_a?>?0)
begin
	select?@var_a
	set?@var_a=@var_a-1
end

While循环语句通常和游标(cursor)一块使用如:

declare?MyCursor?cursor?for?select?Name?from?#table?--定义游标,游标数据集来源临时表#table
open?MyCursor?--打开游标以供下面代码使用
fetch?next?from?MyCursor?into?@name?--将游标指向的值赋值给临时变量@name,游标指向下一条数据
while?@@FETCH_STATUS=0?--判断游标是否到最后一条记录
begin
	select?@name
	fetch?next?from?MyCursor?into?@name
end
close?MyCursor?--关闭游标
deallocate?MyCursor?--?释放最后的游标引用时

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读