SQL Server存储过程中raiserror的使用
一 系统预定义错误代码
SQL Server 有3831个预定义错误代码,由master.dbo.sysmessages表维护。每一个错误代码都有相应的级别和描述。
错误定义的级别从0到25。20以上的错误代表重大错误,通常意味着该错误会导致存储进程立刻终止,并且所有的客户连接都要重新初始化。
非关键性错误只是禁止掉当前运行的程序行,并继续执行。
判断错误是否发生和得到错误描述信息的方法:
IF @@ERROR = 0
begin
SELECT @ERRORMESSAGETXT = description from master.dbo.sysmessages WHERE error = @@ERROR
end
二 raiserror语法
msg_id
定制消息的错误代码。. RAISERROR 接受任何大于13000的数字, 但是定制信息msg_id要大于等于50000。
msg_str
定制信息的文本。
severity
定制信息的级别。从 0 to 25, 19-25 是重大错误代码。
state
呈现导致错误的状态,不在SQL内部使用。
argument
定义在错误信息中的可以替换的值。
WITH…
有三个选项:
· WITH LOG 纪录错误。只能用于级别高于19的错误。
· WITH NOWAIT 将错误立刻发送到客户端
· WITH SETERROR sets @@ERROR to the value specified by msg_id, regardless of severity level.
语法
RAISERROR ( { msg_id ¦ msg_str } { , severity , state }
[ , argument [ ,...n ] ] )
[ WITH option [ ,...n ] ]
参数
msg_id
存储于 sysmessages 表中的用户定义的错误信息。用户定义错误信息的错误号应大于 50,000。由特殊消息产生的错误是第 50,000 号。
msg_str
是一条特殊消息,其格式与 C 语言中使用的 PRINTF 格式样式相似。此错误信息最多可包含 400 个字符。如果该信息包含的字符超过 400 个,
则只能显示前 397 个并将添加一个省略号以表示该信息已被截断。所有特定消息的标准消息 ID 是 14,000。
msg_str 支持下面的格式:
% [[flag] [width] [precision] [{h ¦ l}]] type
可在 msg_str 中使用的参数包括:
flag
用于确定用户定义的错误信息的间距和对齐的代码。
{h | l} type
与字符类型 d、i、o、x、X 或 u 一起使用,用于创建 short int (h) 或 long int (l) 类型的值。
字符类型
表示
d 或 I
带符号的整数
o
不带符号的八进制数
p
指针型
s
String
相关文档:
C# 数据库之旅……
继续进攻层出不穷的problems
在上一篇内容的基础上,我又作以改进,现在的情况是这样的:
//In Browseuser form
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System ......
下面是操作步骤:
1. “服务和连接的外围应用配置“ -》“本地连接和远程连接”-》“同时使用TCP/IP和Named Pipes“;
2. “服务配置管理器”-》“网络配置”-》“SQL Express的协议“-》“IP地址”,将IpAll Tcp端口改为1433;
3. 重启服 ......
视图
SET NOCOUNT ON;
SET Northwind;
GO
IF OBJECT_ID('dbo.ViewName') IS NOT NULL
DROP VIEW dbo.ViewName;
GO
CREATE VIEW dbo.Viewname
AS
SELECT * from customer AS C
WHERE EXISTS
(SELECT * from dbo.Orders AS O
WHERE O.CustomerI ......
使用sql语句获得当前月天数
--获得当月天数
select day(dateadd(mm,1,getdate())-day(getdate())) as 本月天数 ;
select getdate() as 当前日期;
&nb ......
在安装Visual Studio+SQL Server的开发环境的时候往往会有很多错误,其中最麻烦的一条就死安装完成之后没有数据库管理工具,即没有SQL Server 2005 Management Studio。出现这样的问题主要有两个原因,一是系统已经存在其他版本的SQL数据库或者Express版本,二是安装环境的时候像我一样先安装了Visual Studio 2005/2008,然 ......