我是SQL Server 2014
的新手。我创建了表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
答案 0 :(得分:1)
您可以在Sql Server中添加自定义错误消息错误,如下所示:
注意: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