MSSQL 变量、视图、事务、循环、多分支逻辑控制语句

一、数据库中变量的创建以及显示

declare @n int  --使用declare关键字声明变量n,int为数据类型
set @n = (select top(1) LotId from Lot)  --通过SET查询结果赋予变量
select top(1) @n=lotid from Lot  -- 通过SELECT 查询结果赋予变量
select @n --展示出变量结果
Declare @avg float
SELECT @avg=avg(currentquantity)
from
(
select top 5 L.CurrentQuantity from Lot L 
--group by L.CurrentQuantity
) 
as temp
select @avg as avg

二、数据库视图的创建、删除

CREATE VIEW LOT
AS (SELECT L.LotNO,PO.ProductionOrderNO FROM Lot L
LEFT JOIN ProductionOrder PO ON PO.ProductionOrderId = L.ProductionOrderId)
--创建视图

DROP VIEW POL  --删除视图

--视图可以方便的对个表中的数据进行整理显示,但不会提供数据读取速度

三、事务应用
begin try 、end try 为一组代码块,尝试去对语句进行执行,无法执行成功与否,语句还会继续往下执行,
begin catch 、end catch 为一组代码块,对上述的语句的执行结果(成功与否),进行获取。
begin tran 、commit tran 、rollback tran 为一组代码块。

begin try  --尝试提交
select 2/0
end try
begin catch
select  ERROR_NUMBER() as error_number,--错误的位置,无错误时返回NULL
ERROR_MESSAGE() as  error_message,--错误的详细描述,无错误时返回NULL
ERROR_STATE() as error_state, --错误的状态,无错误时返回NULL
ERROR_SEVERITY() AS error_severity   --错误的程度,无错误时返回NULL
end catch
T-SQL错误处理可用的严重度代码 --ERROR_SEVERITY()

严重度代码 	 描述
10	状态消息:没有产生任何错误,但是返回了一个消息
11-13 	无特别的含义
14 	信息消息
15	警告消息
16	严重错误:程序失败
begin tran  --开启事务
begin try  ---开启尝试代码
insert into Unit values('abc2','abc2')
insert into Unit values('abc11','abc11')
insert into Unit values('abc11','abc12')
end try  --结束尝试代码
begin catch  --开始获取异常
select  ERROR_MESSAGE() as  error_message--输出错误的详细描述
rollback tran  --若有异常回滚上述提交的代码
return  --结束后续执行返回
end catch --结束捕获
commit tran  --若无异常时提交执行的代码
对于事务回滚的另外一种做法(XACT_ABORT)
XACT_ABORT原意是精确终止、其实在SQL运行中很好理解
默认XACT_ABORT=OFF的情况下,语句不管什么情况,遇到什么错误,反正错误了也继续执行,意思为错也不回头。
在XACT_ABORT=ON的情况下,语句遇到一个错误就停止执行并回滚错误:
关键是这个是事务联系起来,一个事务就是一个错误,所以事务内错了整个事务就回滚,就把一个事务当成一句语句好了。

四、循环操作

declare @i int , @sum int  --定义两个变量
set @i = 1
set @sum = 0  --赋值

while (@i<=10)  --循环的条件
begin
	set @sum = @i +@sum   --执行循环中的命令
	set @i = @i+1
end
select @sum as sum  --输出结果

五、多分支逻辑控制语句


select * ,(
case  --case 表示开始情况判断
	when RoleId <6 then 'A'   --一种情况
	when RoleId <11 then 'B'  --刨除上述条件外的另外一种情况
	else 'C'   --其余的情况
end  --结束情况
) as 角色  --给判断的情况赋予名称
from Role

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值