我可以在存储过程中进行约束检查吗?
Can I do a constraint check in a stored procedure?
我想使用存储过程来检查是否插入了状态。我知道我可以从设计中得到约束 table,我只是想在一个过程中完成它。
create procedure Service_Status(@service_status varchar(15))
AS
Begin
IF (NOT EXISTS(SELECT * FROM ServiceStatus WHERE
[status]=@service_status))
--Check ([status] in ('Pending','In-Progress','Closed'))
BEGIN
SELECT 'Status must be either Pending, In-Progress or Closed'
END
END
如果您坚持使用过程,那么我认为您做不到 - 您打算如何将该存储过程绑定到插入和更新事件?
你可以将你的检查代码封装在一个用户定义的函数中,但是你需要在一个约束中调用那个函数(你似乎不是这样的),你也可以创建一个触发器(可能不建议),但是我真的不明白您将如何对插入/更新事件执行存储过程检查。
我想使用存储过程来检查是否插入了状态。我知道我可以从设计中得到约束 table,我只是想在一个过程中完成它。
create procedure Service_Status(@service_status varchar(15))
AS
Begin
IF (NOT EXISTS(SELECT * FROM ServiceStatus WHERE
[status]=@service_status))
--Check ([status] in ('Pending','In-Progress','Closed'))
BEGIN
SELECT 'Status must be either Pending, In-Progress or Closed'
END
END
如果您坚持使用过程,那么我认为您做不到 - 您打算如何将该存储过程绑定到插入和更新事件?
你可以将你的检查代码封装在一个用户定义的函数中,但是你需要在一个约束中调用那个函数(你似乎不是这样的),你也可以创建一个触发器(可能不建议),但是我真的不明白您将如何对插入/更新事件执行存储过程检查。