我在我的数据库中的表上有一个检查约束。我对检查的理解是它为表中的记录设置了一个合理的条件。为什么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
可能会发生什么?