Заявление ALTER TABLE противоречило

alter FUNCTION [Kuri].[fnGetAge](@kuri_cust_Id int,@amt decimal) RETURNS SMALLINT AS BEGIN DECLARE @isVallid bit = 0 declare @payed decimal(14,2) declare @totaltillnow decimal(14,2) select @payed = isnull(SUM(Payment.amt),0) from Kuri.Payment where Payment.Kuri_Cust_ID = @kuri_Cust_id select @totaltillnow = isnull(SUM(NextLotAmount),0) from Kuri.Kuri_GivenDetails inner join Kuri.kuri_Customer on Kuri_GivenDetails.kuri_Id = kuri_Customer.kuri_ID where kuri_Customer.kuri_Cust_id = @kuri_Cust_id if((@payed + @amt) < @totaltillnow) set @isVallid = 1 RETURN @isVallid END; GO ALTER TABLE [Kuri].[Payment] WITH CHECK ADD CONSTRAINT PaymentCheck CHECK (kuri.fnGetAge(kuri_Cust_ID,amt) >= 1 ) GO 

ошибка :

Оператор ALTER TABLE противоречил ограничению CHECK «PaymentCheck». Конфликт произошел в базе данных «MERP», таблица «Kuri.Payment».

Структура таблицы подобна

 CREATE TABLE [Kuri].[Payment]( [payment_ID] [int] IDENTITY(1,1) NOT NULL, [payment_Date] [date] NOT NULL, [bill_No] [nvarchar](25) NOT NULL, [Kuri_Cust_ID] [int] NOT NULL, [vr_ID] [int] NOT NULL, [amt] [decimal](14, 2) NULL, [created_ID] [int] NULL, [created_Date] [datetime] NULL, [modified_ID] [int] NULL, [modified_Date] [datetime] NULL, [authorized_ID] [int] NULL, [authorized_Date] [datetime] NULL, CONSTRAINT [PK_Payment] PRIMARY KEY CLUSTERED ([payment_ID] ASC) ALTER TABLE [Kuri].[Payment] WITH CHECK ADD CONSTRAINT [FK_Payment_kuri_Customer] FOREIGN KEY([Kuri_Cust_ID]) REFERENCES [Kuri].[kuri_Customer] ([Kuri_Cust_ID]) ALTER TABLE [Kuri].[Payment] CHECK CONSTRAINT [FK_Payment_kuri_Customer] 

Как ясно говорится об ошибке: в вашей таблице есть строки, которые нарушают ограничение проверки.

Поскольку ваши тесты проверки ограничений для kuri.fnGetAge(kuri_Cust_ID,amt) >= 1 , вы можете найти эти строки в нарушение этого контрольного ограничения, используя

  SELECT * FROM Kuri.Payment WHERE kuri.fnGetAge(kuri_Cust_ID, amt) < 1 

Исправьте или удалите эти строки, и тогда вы должны быть в порядке, и ваша команда ALTER TABLE должна работать