违反约束 SQL 服务器的自定义错误显示

Custom Error show with constraints violation SQL server

我是 SQL Server 2014 的新手。我创建了 table student,我制作了如下三列。 melicode 具有 CHECK 约束,当您希望使用 Edit top 200 rows 时它可以很好地工作。当您尝试给 melicode 一个小于二的数字时,您将面临 Errorbox;但这里的问题是:如果违反约束,我可以打印一个自定义错误框来说明什么吗,例如 "The melicode range starts from 2".

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

    CREATE TABLE [dbo].[student](
    [stdid] [nchar](10) NOT NULL,
    [stdname] [nvarchar](50) NOT NULL,
    [melicode] [char](10) NOT NULL,
) ON [PRIMARY] 

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[student]  WITH CHECK ADD CHECK  (([melicode]>(2)))

我尝试了下面的代码来实现它,但是遇到了错误:

IF  melicode < 2
    RAISERROR ('melicode can not be less than 2',0,1)
GO

您可以在 Sql 服务器中添加自定义错误消息错误,如下所示:
注意:MsgNum 应大于 50000

exec sp_addmessage @msgnum=50009,@severity=1,@msgtext='melicode can not be less than 2'

创建的消息可以在这里找到:

 SELECT * FROM SYS.messages

您的代码应该如下所示:

BEGIN TRY

UPDATE STATEMENT GOES HERE  
OR  
INSERT STATEMENT GOES HERE

END TRY

BEGIN CATCH

RAISERROR(50009,1,1)

END CATCH