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
相关文档:
Oracle发布免费数据库开发工具SQL Developer 1.2
2007.09.25 来自:CSDN 呐不喊 共有评论()条 发表评论 收藏
Oracle SQL Developer是甲骨文公司免费提供的数据库开发工具,可帮助用户简化开发工作,提高编制和调试SQL和PL/SQL代码的效率。现在,这个免费工 ......
下面是操作步骤:
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 row_number() over(partition by xs.xsbh, xs.kch order by coalesce(xs.bkxnxqh, xs.xnxqh) desc) rn
row_number():代表列
partition by 代表按什么进行分组
order by对每一组信息进行排序
coalesce()是替换的意思 例如:上面的SQL语句的意思是,如果bkxnxqh为空,那么就去xnx ......
1. SQL Server的系统表
Microsoft的SQL Server是一个可伸缩的高性能数据库管理系统,专为分布式客户机/服
务器环境而设计,SQL Server几乎将所有的配置信息、安全性信息和对象信息都存储在了它自
身的系统表中,而系统表存在于每个独立的数据库中,存储一个特定数据库对象信息的系统表
通常称为数据库目录,M ......