一.RAISERROR
RAISERROR( {msg_id | msg_str}{,severity, state}
[, arg[,...n ]] )
[WITH option [,...n ]]
--msg_id: sqlserver错误消息表中存在的系统和用户定义的消息
--msg_str: 消息字符,可定义文字内的参数
--% [[flag] [width] [. precision] [{h | l}] ] type
--flag: 一个代码,用于确定输入值的对齐方式和间距
---(减号): 左对齐
--+(加号): 在值前显示+或-号
--0: 在输出前添加前缀0
--#: 依赖于格式化方式,在非零值前添加0,0x或0X
--(空白): 在前面添加空白前缀
--width: 输出的最小宽度
--precision: 从字符串值的参数值中得到的所使用的字符的最大字符数
--h: 字符类型
--d或i: 有符号整数,对于整数
--o: 无符号八进制数,对于无符号八进制数
--s: 字符串,对于字符串
--u: 无符号整数,对于无符号整数
--x或X: 无符号十六进制数,对于无符号十六进制数
--p: 对于指针
--severity: 错误严重级别,从无害的1到致命的25
--2-14常规
--15警告
--16以上表示错误
--20-25严重错误
--若为11以上,@@ERROR的值被设置为RAISERROR中的消息号
--state: 状态,一般设置为1
WITH选项:
LOG: 将错误消息放入到windows错误日志中(注意windows错误日志可能被填满)
NOWAIT: 直接将错误发送给客户
SETERROR: 只在消息字符串中将错误号复位到50000
--系统存储过程sp_addmessage可用于创建全局的错误消息
sp_addmessage [@msgnum = ] msg_id, --消息号,通常大于50000
[@severity = ] severity, --范围1-25
[@msgtext = ] 'msg' --输出的消息
[, [@lang = ] 'language'] --如果需要定义错误消息的语言
[, [@with_log = ] 'with_log'] --若使用windows错误消息,可设为true
[, [@replace = ] 'replace'] --替换一条现有的消息
sp_addmessage 50001,1,'message is ...%010u',@replace='replace'
raiserror(50001,11,1,243)
--输入为
--Msg 50001, Level 11, State 1, Line 1
--message is ...0000000243
二.@@ERROR: 全局变量
最基本的错误处理方式。
SELECT 100/0 --无
SELECT @@ERROR --8134
SELECT @@ERROR --0,执行过之后就是0了
RAISERROR ( 50001, 1, 1 )
SELECT @@ERROR --0,因为严重级别小于11
RAISERROR ( 50001, 11, 1 )
SELECT @@ERROR --50001,因为严重级别大于等于11
--建议使用TRY...CATCH
三.TRY...CATCH: 可以嵌套
DECLARE @Pv int
BEGIN TRY
SELECT @Pv = 'abc'
END TRY
BEGIN CATCH
DECLARE @msg varchar(100)
SELECT @msg = LTRIM(STR(ERROR_LINE()))+','+ LTRIM(STR(ERROR_NUMBER())) + ',' + ERROR_MESSAGE()
RAISERROR(@msg,11,1)
END CATCH
--Msg 50000, Level 11, State 1, Line 8
--3,245,Conversion failed when converting the varchar value 'abc' to data type int.
--ERROR_LINE(): 物理行号
--ERROR_NUMBER(): 同消息相关联的消息号
--ERROR_MESSAGE(): 消息文本
--ERROR_PROCEDURE(): 若在存储过程或触发器中使用,将包含其名称,一般使用输出NULL
--ERROR_SEVERITY(): 错误的严重级别数值
--ERROR_STATE(): 错误数字状态值
--注意在try...catch中使用临时表时产生延迟名称解析(deferred name resolution)问题
分享到:
相关推荐
### SQL Server 2812错误处理 #### 一、问题背景 在SQL Server数据库管理过程中,用户可能会遇到“错误2812:未能找到存储过程'master.dbo.xp_fileexist'”的问题。该问题通常发生在尝试还原数据库时,其原因是系统...
SQL Server 错误代码大全 概述: SQL Server 错误代码大全是一份详细的数据库错误代码大全,涵盖了 SQL Server 中各种可能的错误代码和解决方法。该大全旨在帮助开发者和 DBA 快速地定位和解决 SQL Server 中出现的...
本文将对SQL Server错误日志中的“错误701”进行深入解析,并探讨其背后的原因以及可能的解决方案。 #### 错误701的基本含义 错误701的完整描述为:“系统资源池'default'中没有足够的系统内存来运行此查询。”该...
对sqlserver数据库中错误的说明 包括 错误的代码和错误的中文说明,有利于程序错误的处理
4. 具有错误处理和诊断能力,可以获取详细的数据库连接和操作信息。 5. 支持SQL Server的高级特性,如XML数据类型、分区视图和Service Broker。 在实际应用中,安装SQL Server Native Client 2012驱动后,Navicat...
"SQL Server 错误代码大全" SQL Server 错误代码大全是指SQL Server数据库管理系统中出现的各种错误代码及其对应的错误信息。这些错误代码涵盖了SQL Server的各个方面,包括系统错误、存储错误、网络错误、打印机...
6. **错误处理和调试**:在使用Navicat和SQL Server Native Client 10.0时,可能会遇到各种连接或查询问题。正确处理错误和日志记录是解决问题的关键。Navicat通常会提供详细的错误信息,帮助诊断问题。 7. **备份...
对于开发人员,SQL Server Native Client 10.0提供了丰富的错误处理和诊断工具,包括跟踪和日志记录功能,帮助调试和优化应用程序的数据库访问性能。 总结来说,SQL Server Native Client 10.0是64位环境下的重要...
### Java连接SQL Server 2000方法及错误处理 #### 一、引言 在进行Java应用程序开发过程中,连接数据库是一项基本且重要的任务。本文将详细介绍如何使用Java连接SQL Server 2000数据库,并解决连接过程中可能出现...
在描述中提到的“sqlserver 程序化备份”,意味着我们需要在Delphi应用程序中编写代码来执行SQL Server的备份任务。这可以通过以下步骤实现: 1. 连接数据库:使用ADOConnection组件,配置适当的连接字符串(如...
SQL Server Native Client 10.0 的OLE DB提供者支持多种特性,如事务、并发控制、数据类型转换和错误处理。通过OLE DB,开发者可以直接操作数据库对象,如表、视图、存储过程,并能利用SQL Server特有的特性,如XML...
本篇文章主要探讨了如何在SQL Server环境下处理数据层错误,特别关注了T-SQL中的错误处理技术和事务管理。 首先,事务是数据库操作的核心组成部分,确保数据一致性。在SQL Server中,使用`BEGIN TRANSACTION`, `...
为了能够掌握在SQL Server 2000中错误处理是如何工作的,必须首先要理解数据库事务的概念。在数据库术语中,事务就是指作为一个单独的工作单位出现的一系列语句。举个例子来 说,假设你有三个语句要执行,事务就可以...
在SQL Server中,事务处理是数据库操作的核心组成部分,它确保数据的一致性和完整性。事务是一组逻辑操作,这些操作被视为单个单元,要么全部完成,要么全部回滚,以维护数据库的ACID(原子性、一致性、隔离性和持久...
这些类通常涉及到网络通信、错误处理、安全性和性能优化等方面。它们是驱动程序的核心组成部分,帮助处理与数据库服务器之间的通信细节。 3. **mssqlserver.jar**: 这个JAR包是针对SQL Server特定功能的扩展,它...
SQL Server是一款由微软开发的大型关系型数据库管理系统(RDBMS),广泛应用于企业级应用中。安装SQL Server是进行数据库部署、管理和维护的第一步,其安装方式多样,包括自定义安装和一键安装等。本文档旨在提供一...
6. **日志分析**:对于SQL Server的日志文件,Spotlight可能有专门的分析工具,帮助理解错误信息,追踪问题源头,从而提高故障排查效率。 7. **安全性管理**:此工具可能包含对SQL Server安全性的监控,比如审计...
- 为了确保数据的完整迁移,你可能需要配置相应的错误处理策略,如重试、回退或跳过有问题的数据。 5. **性能优化**: - 考虑调整Flink作业的并行度、批处理窗口大小、缓冲区设置等参数,以优化性能。 - 监控SQL...
它可能包含了网络通信、错误处理、数据转换等基础功能。在连接SQL Server时,这些底层支持对于实现高效的数据库交互至关重要。 2. `smsqlserver.jar`:这个jar文件是SQL Server驱动的核心部分,提供了对SQL Server...
### SQL Server 双引号问题处理 在进行数据库操作时,我们经常需要用到各种各样的字符来构建复杂的查询语句。其中,SQL Server 使用单引号(' ')来标识字符串,这是一种约定俗成的做法。然而,在某些情况下,比如...