异常:
1,SQL Server突然宕机或重启;
2,内存/磁盘不够用,无法插入数据
3,各种约束导致SQL语句无法执行;
异常有时也被称为‘错误’,但与SQL语法错误不同,语法错误代SQL代码错误,异常错误代表无法预料或预料到也无法解决的外部问题;
事务:
BEGIN TRY
BEGIN TRANSACTION
UPDATE Student SET Score+=30 WHERE [Name]=N'小红';
UPDATE Student SET Score-=30 WHERE [Name]=N'小王'; --假设小王成绩20分,且该列上约束不能小于0;
COMMIT ---没有异常就提交
END TRY
BEGIN CATCH
ROLLBACK ---出现异常就回滚
END CATCH
事务的特性:
1,原子性:事务中所有内容,要么全部完成,要么全部回滚;
2,一致性:事务的运行,不能破坏数据的一致性,比如各种约束等;
3,隔离性:正在执行的事务,不能被别的事务干扰;
4,持久性:一旦成功提交,不可再回滚;