我想在我的數據庫表上執行一個業務規則,以確保如果表中已經包含滿足特定條件的行,就不能插入一行。SQL SERVER檢查約束 - 查詢其他行
想要使用CHECK約束,但懷疑這可能需要通過觸發器完成。
有沒有辦法通過CHECK約束來做到這一點?或者還有另一種方法可以在數據庫級別執行此操作,而無需使用觸發器?
我想在我的數據庫表上執行一個業務規則,以確保如果表中已經包含滿足特定條件的行,就不能插入一行。SQL SERVER檢查約束 - 查詢其他行
想要使用CHECK約束,但懷疑這可能需要通過觸發器完成。
有沒有辦法通過CHECK約束來做到這一點?或者還有另一種方法可以在數據庫級別執行此操作,而無需使用觸發器?
根據您的具體標準(你還沒有共享),你可以做一個unique filtered index.
這通常是比功能或其他解決方法更快。
一般格式是:
CREATE UNIQUE NONCLUSTERED INDEX ix_IndexName ON MyTable (FieldstoIndex)
WHERE <filter to only include certain rows>
請提供的一個例子** **具體什麼你正在嘗試做的。總是最好嘗試以聲明的方式來做這件事。 –
您可以更具體地瞭解您正在測試的標準嗎? –
如果在某個範圍內有一列ID列的現有行,我不想插入一行 – AJM