首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Raiserror SQL Server

Raiserror SQL Server
EN

Stack Overflow用户
提问于 2017-05-23 15:28:25
回答 2查看 54关注 0票数 0

我有一个insert语句:

代码语言:javascript
复制
Insert into foo (id, value) 
Values (1, 5)

当value为例如-1时,有没有办法引发错误?

代码语言:javascript
复制
Insert into foo (Id, value)
Values (1, case when -1=-1 then raiserror() else 5 end)
EN

回答 2

Stack Overflow用户

发布于 2017-05-23 15:31:22

您可以尝试添加check约束,例如

代码语言:javascript
复制
CREATE TABLE dbo.foo
(
    id int primary key,
    value int NOT NULL CHECK (value >= 0)
)

如果表foo已经存在,则可以使用ALTER TABLE添加约束:

代码语言:javascript
复制
ALTER TABLE dbo.foo ADD CONSTRAINT ck_value CHECK (value >= 0)
票数 1
EN

Stack Overflow用户

发布于 2017-05-23 15:39:32

存储过程中支持Raiseerror()方法。

最好将insert查询写入存储过程并应用验证,如下所示:

代码语言:javascript
复制
IF (@value < 0) 
BEGIN
    RAISERROR('Invalid parameter: @value cannot be less than zero', 18, 0)
    RETURN
END
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44128386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档