2015-11-14 83 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

如果你堅持的程序,然後我不認爲你可以 - 你是如何計劃該存儲過程綁定到插入&更新事件?你可以將你的檢查代碼封裝在一個用戶定義的函數中,但是你需要在一個約束中調用這個函數(你似乎沒有瞄準那個),你也可以創建一個觸發器(可能不可取),但是我真的沒有看到你將如何執行插入/更新事件的存儲過程檢查。