用SQL Server处理数据层错误
2007-05-15 09:29:21 来源:WEB开发网核心提示: RAISERRORRAISERROR语句让你能够生成一个自定义的错误信息或者使用一个放在sysmessages表格里的已有消息,你可以在线查看它的句法,用SQL Server处理数据层错误(2),但是它的最基本格式包括了消息(用于自定义的消息)或者消息id(用于已有的消息)和它的严重度及状
RAISERROR
RAISERROR语句让你能够生成一个自定义的错误信息或者使用一个放在sysmessages表格里的已有消息。你可以在线查看它的句法,但是它的最基本格式包括了消息(用于自定义的消息)或者消息id(用于已有的消息)和它的严重度及状态。SQLServer没有使用状态,所以随便传递给它一个数字就可以了。严重度表示了错误的严重程度,0-18供用户使用,而19-25保留给管理员使用。
在列表A里,示例存储过程使用了这些特性来更新示例Northwind数据库里的一条记录:
CREATE PROCEDURE sp_UpdateCustomerPhone(
@id nvarchar(5),
@phone nvarchar(24),
@retvalueint output
) AS
BEGIN
BEGIN TRANSACTION
UPDATE [dbo].[Customers] SET [Phone] = @phone WHERE([CustomerID] = @id)
IF (@@ERROR <> 0) -- a non-negative value signals an error
BEGIN
ROLLBACK TRANSACTION -- changes are not permanent
RAISERROR('Update Customers Error',1,1)
-- raise a custom error message
-- Custom error message appears if run from console
SET @retvalue = -1 -- return negative value to signalproblems
END
COMMIT TRANSACTION -- make the changes permanent,
so record is updated
SET @retvalue = 1 -- a positive return value signalssuccess
RETURN
END
列表A
如果没有错误发生,它就把电话号码列设置为一个值,传递给过程。它使用一个返回值参数,如果有问题发生它就返回一个负值,如果用所有的东西都执行没有问题,它会返回一个正值。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
赞助商链接