2015-11-14 51 views
-1

我想使用存储过程来检查是否插入状态。我知道我可以从设计桌子的时候得到约束,我只是想在一个过程中做到这一点。我可以在存储过程中进行约束检查吗?

create procedure Service_Status(@service_status varchar(15)) 
AS 
    Begin 
    IF (NOT EXISTS(SELECT * FROM ServiceStatus WHERE 
     [status][email protected]_status)) 
    --Check ([status] in ('Pending','In-Progress','Closed')) 
     BEGIN 
     SELECT 'Status must be either Pending, In-Progress or Closed' 
     END 

END 
+0

为什么?只需使用检查约束。 –

回答

2

如果你坚持的程序,然后我不认为你可以 - 你是如何计划该存储过程绑定到插入&更新事件?你可以将你的检查代码封装在一个用户定义的函数中,但是你需要在一个约束中调用这个函数(你似乎没有瞄准那个),你也可以创建一个触发器(可能不可取),但是我真的没有看到你将如何执行插入/更新事件的存储过程检查。