BEGIN转换成MySQL查询 begin数据库
转载
一、事务
管理语句:
BEGIN TRANSACTION(开启)
COMMIT TRANSACTION(提交)
ROLLBACK TRANSACTION(回滚)
SAVE TRANSACTION(保存)
二、锁
封锁,就是一个事务可向系统提出请求,对被操作的数据加锁。其他事务必须等到此事务解锁之后才能访问该数据。
锁的类型:
共享(S)锁,用于读操作
独占(X)锁,用于写操作
更新(U)锁
三、系统与原数据函数
CONVERT() | 将一种数据类型的数据转变为另一种数据类型的数据 |
CURRENT USER() | 返回当前用户的名称 |
ISDATE() | 判断它的输入是不是一个有效日期 |
ISNULL() | 用一个指定替换值替换任何控制 |
ISNUMERRIC() | 判断它的输入是否是一个数值 |
四、BEGIN…END语句块
流程控制语句,按组执行语句块
BEGIN
{
Sql_statement | statement_block
}
End
五、SQL Server 2008事务模式
自动提交事务
每条单独的语句都是一个事务
显式事务
每个事务均以BEGIN TRANSACTION语句显式开始,以COMMIT或ROLLBACK语句显式结束
隐式事务
在前一个事务完成时新事务隐式启动,但每个事务仍以COMMIT或ROLLBACK语句显式完成
批处理级事务
只能应用于多个活动结果集。。。
六、XACT-ABORT选项
用于指定当SQL语句出现运行时错误时,SQL Server是否自动回滚到当前事务,语法格式:
SET XACT_ABORT{ ON | OFF}
ON:产生错误时,则整个事务将终止并回滚;OFF:有时只回滚产生错误的SQL语句,而事务将继续进行处理
它的设置是在执行或运行时设置,而不是在分析时设置。
七、死锁
指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象
必要条件:互斥条件
请求与保持条件
不剥夺条件
循环等待条件
死锁的解除和预防:
按同一顺序访问对象
避免事务中的用户交互
保持事务简短并在一个批处理中
使用低隔离级别
使用绑定连接
死锁的建议:
(1)对于频繁使用的表使用集簇化的索引
(2)设法避免一次性影响大量记录的T-SQL语句,特别是INSERT和UPDATE语句
(3)设法让UPDATE和DELETE语句使用索引
(4)使用嵌套事务是,避免提交和回退冲突
(5)对一些数据不需要及时读取更新值的表在写SQL的时候在表后台加上(nolock),如:Select * from tableA(nolock)
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。