我在我的數據庫中的表上有一個檢查約束。我對檢查的理解是它爲表中的記錄設置了一個合理的條件。爲什麼t-sql允許我違反使用UDP的檢查約束?
USE [myDB]
GO
ALTER TABLE [dbo].[myTable] WITH CHECK ADD CONSTRAINT [oneProgramPerTest] CHECK (([dbo].[howManyProgPerTest]([TestId])<(2)))
GO
ALTER TABLE [dbo].[myTable] CHECK CONSTRAINT [oneProgramPerTest]
GO
但我能夠對打破約束的表進行更新。更新後,此查詢返回9條記錄:
select COUNT (*) from myDB.dbo.myTable where myDB.[dbo].[howManyProgPerTest](testID)>1
可能會發生什麼?