SQL Server研习录(23)——RAISERROR()函数

article/2025/8/26 5:13:03

SQL Server研习录(23)——RAISERROR函数

    • 版权声明
      • 一、RAISERROR()函数
        • 1、基本语法


版权声明

  • 本文原创作者:清风不渡
  • 博客地址:https://blog.csdn.net/WXKKang

一、RAISERROR()函数

  概念:生成错误消息并启动会话的错误处理。RAISERROR可以引用sys.message目录视图中存储的用户定义消息,也可以动态建立消息。该消息作为服务器错误的消息返回到调用应用程序,或返回到TRY…CATCH构造的关联CATCH块。新应用程序应改用THROW

1、基本语法

  基本语法如下:

-- Syntax for SQL Server and Azure SQL Database(SQL Server和Azure SQL数据库的语法 ) 
RAISERROR ( { msg_id | msg_str | @local_variable }  { ,severity ,state }  [ ,argument [ ,...n ] ] )  [ WITH option [ ,...n ] ]-- Syntax for Azure SQL Data Warehouse and Parallel Data Warehouse(用于Azure SQL数据仓库和并行数据仓库的语法)
RAISERROR ( { msg_str | @local_variable }  { ,severity ,state }  [ ,argument [ ,...n ] ] )  [ WITH option [ ,...n ] ]

  注释:
  (1)参数
  参数msg_id: 使用sp_addmessage存储在sys.message目录视图中的用户定义错误消息号。用户定义的错误消息的错误号应大于50000。若未指定msg_id,RAISERROR会引发一个错误号为50000的错误消息
  参数msg_str: 用户定义的消息,格式与C标准库中的printf函数类似。该错误消息最长可以有2047个字节。如果该消息包含的字符数等于或者超过2048个,则只能显示前2044个并添加一个省略号以表示该消息已被截断。请注意,由于内部存储行为的缘故,代替参数使用的字符数比输出所显示的字符要更多。例如,赋值为2的代言参数%d实际在消息字符串中生成一个字符,但是还会在内部占用另外三个存储字符。此存储要求减少了可用于消息输出的字符数
  若指定了msg_str,RAISERROR会引发一个错误号为50000的错误消息
  msg_str是一个字符串,具有可选的嵌入转换规格。每个转换规格都会定义参数列表中的值如何格式化并将其置于msg_str中转换规格位置上的字段中,转换规格的格式如下:

% [[flag] [width] [. precision] [{h | l}]] type

  可在msg_str中使用的参数包括:
  flag
  用于确定被替换值的间距和对齐的代码:
在这里插入图片描述
  width
  定义放置参数值的字段的最小宽度的整数。 如果参数值的长度等于或大于 width,则打印该值,无需进行填充。 如果该值小于 width,则将该值填充到 width 中指定的长度
  星号 (*) 表示宽度由参数列表中的相关参数指定,该宽度必须为整数值
  精度
  从字符串值的参数值中得到的最大字符数。 例如,如果一个字符串具有五个字符并且精度为 3,则只使用字符串值的前三个字符
  对于整数值,precision 是指打印的最小位数
  星号 (*) 表示精度由参数列表中的相关参数指定,该精度必须为整数值
  {h | l} type
  与字符类型 d、i、o、s、x、X 或 u 一起使用,用于创建 shortint (h) 值或 longint (l) 值,字符类型解释如下:
在这里插入图片描述
  参数local_variable@: 是一个可以为任何有效字符数据类型的变量,其中包含的字符串的格式化方式与 msg_str 相同 。 @local_variable 必须为 char 或 varchar,或者能够隐式转换为这些数据类型
  参数severity: 用户定义的与该消息关联的严重级别。 使用 msg_id 引发使用 sp_addmessage 创建的用户定义消息时,RAISERROR 上指定的严重性会替代 sp_addmessage 中指定的严重性
  注意:任何用户都可以指定 0 到 18 之间的严重级别。 只有 sysadmin 固定服务器角色成员或具有 ALTER TRACE 权限的用户才能指定 19 到 25 之间的严重级别。 若要使用 19 到 25 之间的严重级别,必须选择 WITH LOG 选项。 将小于 0 的严重级别解释为 0。 将大于 25 的严重级别解释为 25,20 到 25 之间的严重级别被认为是致命的。 如果遇到致命的严重级别,客户端连接将在收到消息后终止,并将错误记录到错误日志和应用程序日志
  参数State: 0 到 255 之间的整数。 负值默认为 1。 不应使用大于 255 的值,如果在多个位置引发相同的用户定义错误,则针对每个位置使用唯一的状态号有助于找到引发错误的代码段
  参数argument: 用于代替 msg_str 或对应于 msg_id 的消息中定义的变量的参数。 可以有 0 个或更多个替换参数,但替换参数的总数不能超过 20。 每个替换参数可以是本地变量或下列任何数据类型:tinyint、smallint、int、char、varchar、nchar、nvarchar、binary 或 varbinary。,不支持其他数据类型
  参数option: 错误的自定义选项,可以是下表中的任一值:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/V6SgqjTu.shtml

相关文章

秒懂SQL SERVERE 数据库中RAISERROR的基本用法

基本用法 raiserror(msg,severity,state)一、msg 错误信息。 二、severity 错误信息的级别,我们可以指定 0 到 18 之间的严重级别。 只有 sysadmin 固定服务器角色成员或具有 ALTER TRACE 权限的用户才能指定 19 到 25 之间的严重级别。若要使用 19 到 25 之间的严…

国产化DSP方案引领VoIP产业全面升级

国内VoIP产业已经是一个发展了20多年的成熟产业链。稳定的客户群体,十几年不变的进口DSP方案,大同小异的产品形态,近几年罕有创新产品诞生。2019年6月1日绅聚科技推出重磅产品–全国产DSP芯片解决方案–A1010,将引领VoIP产业进行全…

A1006

#include <stdio.h>struct pNode{char id[20];int hh,mm,ss; }ans1,ans2, temp;bool great(pNode node1, pNode node2){ //时间node1 大于node2 返回真if (node1.hh ! node2.hh) return node1.hh>node2.hh;if (node1.mm ! node2.mm) return node1.mm>node2.m…

A1010 Radix (25 分)PAT甲级真题(C++)【进制转换】题目详解 测试点分析

Given a pair of positive integers, for example, 6 and 110, can this equation 6 110 be true? The answer is yes, if 6 is a decimal number and 110 is a binary number. Now for any pair of positive integers N1​ and N2​, your task is to find the radix of on…

汇编踩过的坑(error A1010,A2085 ,divide error,A2070,注意事项)

汇编踩过的坑&#xff08;error A1010&#xff0c;A2085 &#xff0c;divide error&#xff0c;A2070&#xff0c;注意事项&#xff09; 最近也是在学汇编语言&#xff0c;上机的时候发现错误很不友好&#xff0c;总是断断续续&#xff0c;上网去查询&#xff0c;又查不到&…

【PAT甲级】A1001-A1050刷题记录

文章目录 A1001 AB Format (20 分) 0.25★(一元多项式加法) A1002 AB for Polynomials (25 分) 0.21(单源最短路Dijkstra边权第二标尺(点权)最短路数目) A1003 Emergency (25 分) 0.28(静态树层次遍历) A1004 Counting Leaves (30 分) 0.35A1005 Spell It Right (20 分) 0.34A1…

绅聚科技推出首款国产化VoIP专用芯片A1010

近20年来我国VoIP产业一直处于蓬勃发展之中&#xff0c;但是最核心的语音融合处理芯片&#xff08;DSP&#xff09;一直是被进口芯片方案所占据&#xff0c;VoIP产品全国产化一直无法实现。2019年6月1日绅聚科技推出了中国首家自主知识产权的中低密度语音融合处理芯片——A1010…

机房收费系统---详细设计说明书

详细设计说明书 1引言 1.1编写目的 说明编写这份详细设计说明书的目的&#xff0c;指出预期的读者。 该文档是在概要设计的基础上&#xff0c;进一步的细化系统结构&#xff0c;展示了软件结构的图表&#xff0c;物理设计&#xff0c;数据结构设计&#xff0c;以及算法设计…

概要设计说明书【校园BBS论坛-附源码】2022-5.5

信息系统分析与设计——系列文章 一、《软件项目开发计划【列文】2022.5.11》 二、《GB&#xff0d;软件需求说明书【列文】2022-5.6》 三、《需求分析文档——适用范围&#xff1a;产品规划经理进行需求分析》 四、《开发进度月报【列文】2022.5.11》 五、《可行性研究报告【列…

数据库课程设计 论坛系统—— 系统详细设计说明书

马马虎虎记录下2021Fall 的数据库课程设计——论坛系统 基于django开发&#xff0c;源码上传到github啦:) &#x1f517; B612Forum 不能翻墙的戳这里:) csdn资源下载 文章目录 1. 文档介绍1.1. 编写目的1.2. 文档范围1.3. 读者对象 2. 数据库概念结构设计2.1 系统 ER 图2.2 系…

【软件工程】机房文档--详细设计说明书

详细设计说明书 1引言 1.1编写目的 现在机房里提供的办公服务不断增加&#xff0c;信息不断的发展&#xff0c;单靠人工管理已经远远不能应付&#xff0c;这就要求办公自动化系统必须实现自动化、集成化。充分利用计算机网络优势&#xff0c;提高办公效率&#xff0c;是机房…

05详细设计说明书

详细设计说明书 1引言 1.1编写目的 本阶段在用户的需求分析的基础上&#xff0c;对机房收费系统做出概要设计。 编制的目的是说明对程序系统的设计考虑&#xff0c;包括程序系统的基本处理流程、程序系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计…

网约技师APP详细设计说明书

目录 1引言 3 1.1编写目的 3 1.2背景 3 1.3定义 3 1.4参考资料 4 2程序系统的结构 4 3登录程序Login()设计说明 5 3.1程序描述 5 3.2功能 6 3.3性能 6 3.4输人项 6 3.5输出项 7 3.6算法 7 3.7流程逻辑 7 3.8接口 8 3.9存储分配 8 3.10注释设计 8 3.11限制条件…

【综合实训】图书管理系统——详细设计说明书

【备注】本说明书由华中农业大学2018级计算机科学与技术专业的刘铠铭、崔凌浩、卢家伟三位同学共同完成。 文章目录 1 引言1.1 编写目的1.2 项目背景1.3 定义1.4 参考资料 2 总体设计2.1 需求概述2.2 软件结构 3 模块描述3.1 模块基本信息3.2 功能概述3.3 算法3.4 模块处理逻辑…

详细设计说明书(基于C语言的羽毛球场馆预订及查询系统)

详细设计说明书 目录 一.基本情况概述... 3 1.用户名 2. 基本说明 3. 背景 4.编写目的 5.主要参考资料 二&#xff0e;软件详解... 4 1.设计流程图 2.软件主要功能 3.软件各模块 三&#xff0e;测试分析... 5 1.限制条件 2.出现的问题 四&#xff0e;源代码解析.…

计算机基础(一)硬件

校园里当初学习的知识基本消耗殆尽&#xff0c;脑海中只剩浅浅又浅浅的记忆痕迹。即使一直从事相关的工作&#xff0c;但仅仅在一个方向上做着苦行僧&#xff0c;从来无暇去还原看全貌。或许是心有余悸&#xff0c;亦或许是仅仅为了搞钱而没用心正面看过它。在滚滚向前的科技时…

计算机基础硬件知识点讲解

目录 1.CPU2.内存2.1 随机存取存储器2.2 只读存储器 3.高速缓冲存储器3.寄存器6.磁盘7.I/O设备8.运行流程 1.CPU CPU是计算机的大脑&#xff0c;主要和内存进行交互&#xff0c;从内存中提取指令并执行它。在时间多路复用(Time Multiplexing) 的CPU中操作系统往往停止运行一个…

计算机硬件基础知识(三)

1 存储系统 存储系统在计算机系统中的地位非常重要 一般有 Cache和主存组成 Cache 由于在CPU和存储系统间存在数据传送带宽的限制&#xff0c;因此在其中设置了Cache&#xff08;高速缓冲存储器&#xff09; 提高效率&#xff0c;但是由于成本更高&#xff0c;所以cache的容量…

计算机硬件:内存条的基础知识笔记

在电脑硬件中&#xff0c;CPU、显卡、内存均三者是重中之重&#xff0c;所以我们在选择这些核心硬件一定要慎重。今天给大家分享一下关于的电脑内存基础知识&#xff0c;让更多的装机朋友们可以更好的学习内存相关知识。 史上最易懂的电脑内存基础知识 内存条的基本概念&#x…

计算机硬件基本知识

从概念上讲&#xff0c;计算机的结构非常简单&#xff1a;**首先布置一根总线&#xff0c;然后将各种硬件设备挂在总线上。**所有的这些设备都有一个控制设备&#xff0c;外部设备都由这些控制器与CPU通信。而所有设备之间的通信均需通过总线&#xff0c;如图3-1所示。图3-1中的…