1、 事务
begin tran开始事务, commit tran提交事务, rollback tran回滚事务, save tran保存事务
前面三个十分熟悉, 最后一个save tran要好好理解与研究
其实save tran 保存点的名称, 就是一个书签标志, 像很多种操作在一个事务中的时候, 一个事务也分第一步第二步第三步..., 如果第一步没错, 第二步出错, 需要回滚, 这样在第一步与第二步
之间添加一个save tran FirstStep, 通过rollback tran FirstStep来回滚到相应的位置。
2、存储过程
存储过程在声明数据类型时有一件特殊的事情要注意, 声明Cursor类型参数时,必须也同时使用Varying和Output选项。
OoutPut:向外输出值时可义output类型参数
Return:存储过程其实都有返回值,默认时存储过程完成后会返回一个0, 如果想返回一个值, 可以使用return <整数返回值>
如果你在中途想返回存储过程不让他执行下面的, 可以直接用return.
3、错误处理
SQl里面也可以使用try catch形式来对错误处理. 当然也可以使用@@error来进行检测错误。
4、手工生成错误
Raiserror (<消息>,错误级别,状态)
例如: Raiserror('Error, Please check the proc',1,1)
5、错误级别:
1-10: 纯粹信息性错误
11-16:如果没有错误处理则会终止执行并在客户端生成一个错误,有错误处理块, 那么错误处理器会被调用
17: 只有sql server使用这个级别,十分严重, 例如:tampdb满了
18-19: 这两类错误是提醒系统管理员的注意
20-25:致命错误,用户连接都会有可以被存坏
注意:后面二类错误, with log选项是必需的。
6、添加自己的错误消息
添加错误消息
sp_addmessage [@msgnum=]<消息id> [@severity=]<错误级别> [@msgtext=]<'消息字符串'>[,[@lang=]]<'语言'>][,[@with_log=]<true|false>][,[@replace=]'repalce']
@replace: 如果正在编辑一个现有的消息,而不是创建一个新的消息,必须将这个参数设置为'repalce'
删除错误消息
sp_dropmessage