违反约束 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
我是 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