我試圖強制執行的方式,我不認爲一個約束可...使用觸發器強制遵循約束
CREATE TABLE myData
(
id INTEGER IDENTITY(1,1) NOT NULL,
fk_item_id INTEGER NOT NULL,
valid_from DATETIME NOT NULL,
invlaid_from DATETIME NOT NULL
)
我想施加的約束是,應該有一個永遠誠信表是具有重疊日期的相同「fk_item_id」的任何條目。
注意:
invalid_from是緊接有效期之後的時刻。
這意味着下面的兩個時期都很好...
- '2008年1月1 00:00' - > '2008年2月1 00:00'(全揚)
- 「2008年2月1 00:00' - >'2008年3月1日00:00'(全部2月)
我可以在觸發器中檢查該規則。但是,當觸發器發現非法插入/更新時,防止「非法」插入/更新發生的最佳方法是什麼?
(如果插入包括兩個有效記錄和兩個無效的記錄,我能站就兩個無效的記錄?)
乾杯,
民主黨。
編輯:
在我前面有情況,使用功能的約束效果很好。但我從來沒有計算出爲什麼RAISERROR在觸發器版本中不起作用。
我認爲這是因爲觸發器是AFTER觸發器,而我需要一個BEFORE觸發器,但是,這並不似乎是一個選項...
+1爲約束 - > UDF,我已經完成了它,並像它的工作原理。 – 2009-10-14 17:24:08