У меня есть ограничение проверки на таблицу в моей БД. Мое понимание проверки - это логическое условие, которое должно быть верно для записей в таблице.Почему 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
Что может быть?