SQL Server 验证库名,及中断执行

今晚部门组织看电影,西游伏妖篇,IMAX3D。之前没看过IMAX,圆弧形大屏幕坐在正当中效果非常棒。去年还是前年看过一次蚁人,也是3D,但效果不好。这次就震憾多了,3D景深明显,很有立体感和层次感。就是音效太强了些,轰鸣一样。

一个入职半年的同事要离职去成都发展了,下周就走,比较突然。

年初会调一次工资,不知这次能加多少。但绩效考核有调整,以后可能绩效拿的没以前多了。不管怎样,还是工资基数增加好些,毕竟各种奖金都是拿工资去算的。

项目里有些建表/改表/存储过程,想在开头加上库名的验证,以免运行错库,造成不必要的麻烦。有些注意点:

1、可使用DB_NAME()来获取当前库名,比如IF DB_NAME() NOT LIKE '%XX'来进行验证

2、使用RAISERROR来抛出异常,结果发现抛出异常后仍会继续往下执行

3、在抛出异常后,使用RETURN来返回

4、结果发现RETURN只能退出当前GO,如果脚本里有多个GO,后续的会继续执行

5、搜了一下,可使用SET NOEXEC ON,这样相当于仅验证脚本不执行。即

IF DB_NAME() NOT LIKE '%XX'
BEGIN
    RAISERROR XXX
    SET NOEXEC ON;
END

XXX正文
GO

SET NOEXEC OFF;

6、正文后跟的那句SET NOEXEC OFF不写也可以,但不写的话,本次Session(即本次窗口)无法再执行任何语句(不管执行什么都仅显示【命令已完成】),新开窗口后就没事。

原文地址:https://www.cnblogs.com/liuyouying/p/6376417.html