DBのテーブルにチェック制約があります。チェックについての私の理解は、テーブル内のレコードに対して真でなければならない論理条件を設定することです。
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
何が起こっているのでしょうか?