[英]Having data from another table put in into check constraint
我有桌子說table1有一個colum說checkColumn,
現在我想對字段checkColumn設置一個檢查約束,它只允許另一個表中的數據表示某些條件的表2,
我試過這樣的,
ALTER TABLE table1
ADD CHECK (checkColumn=(select field1 from table2 where field2='ABC') ) //the select is not scalar
但是當我意識到在檢查條件下它不允許子查詢字符串時,我搜索了一下並且讀了我應該使用外鍵,觸發器或其他東西,但是我真的不明白如何在這里實現這些示例,所以將此作為單獨的問題發布。
遺憾的是,您無法將Sub Query插入Check約束的上下文中。 但是在這里我想給出建議,你可以使用任何觸發器或函數,你可以使用外鍵約束來檢查數據依賴性我想與函數共享一個例子。 例如
CREATE FUNCTION fn_Check_Rollnumber (
@Rollnumber INT
)
RETURNS VARCHAR(10)
AS
BEGIN
IF EXISTS (SELECT Rollnumber FROM Table_Student WHERE Rollnumber = @Rollnumber)
return 'True'
return 'False'
END
現在您可以在檢查上下文中使用此功能,
ALTER TABLE Table_Fees
WITH CHECK ADD CONSTRAINT CK_RollCheck
CHECK (fn_Check_Rollnumber(Rollnumber) = 'True')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.