1
A
回答
3
假設A列中有值超過5
應該在表列,而不是TRIGGER
使用CHECK
constraint進行,例如更大:
CREATE TABLE [dbo].[SalesHistory](
(...)
[A] [int] NULL CHECK (A > 5)
)
1
您可以使用INSTEAD OF觸發
簡單示例:
CREATE TRIGGER iu_trigger ON [dbo].[SalesHistory]
INSTEAD OF INSERT, UPDATE
AS
BEGIN
IF EXISTS (
SELECT 1
FROM inserted
WHERE A > 5
)
BEGIN
PRINT 'A > 5'
END
ELSE
BEGIN
PRINT 'A <= 5'
END
END
相關問題
- 1. SQL Server:觸發器觸發
- 2. SQL Server觸發器
- 3. Sql Server觸發器
- 4. Sql Server觸發器
- 5. SQL Server觸發器
- 6. SQL Server觸發器表與外鍵
- 7. SQL Server 2005 - 觸發器沒有觸發
- 8. SQL Server:原子觸發器
- 9. SQL Server:插入觸發器
- 10. SQL Server 2008觸發器
- 11. SQL Server FOR/AFTER觸發器
- 12. SQL Server觸發器更新
- 13. SQL Server 2012觸發器
- 14. Sql Server 2008觸發器
- 15. SQL Server中,INSERT觸發器
- 16. SQL Server行級觸發器
- 17. 更新觸發器SQL Server
- 18. 觸發器在SQL Server
- 19. 觸發器,SQL SERVER 2008
- 20. 觸發器在SQL Server 2005
- 21. PROBLEMA SQL SERVER ROLLBACK觸發器
- 22. 觸發器處理SQL Server
- 23. 觸發器在SQL Server
- 24. breeze和sql server觸發器
- 25. SQL Server 2005 SQLAgent觸發器
- 26. SQL Server 2000觸發器
- 27. sql server觸發器插入
- 28. SQL Server 2012 ALL SERVER觸發器問題
- 29. SQL Server觸發器基於表觸發器更新其他表
- 30. 將MySql觸發器轉換爲SQL Server 2008 R2觸發器
創建'而不是插入,更新'觸發器;在觸發器體內部,你可以訪問代表新行的'inserted'虛擬表。如果條件爲真,我想你需要做一些動作,而不僅僅是防止插入這樣的記錄,如Marcin Juraszek指出的那樣,可以使用CHECK約束來有效地完成這些記錄。 – a1ex07