sql – ALTER TABLE语句冲突
发布时间:2020-12-12 16:25:21 所属栏目:MsSql教程 来源:网络整理
导读:alter FUNCTION [Kuri].[fnGetAge](@kuri_cust_Id int,@amt decimal)RETURNS SMALLINTAS BEGIN DECLARE @isVallid bit = 0 declare @payed decimal(14,2) declare @totaltillnow decimal(14,2) select @payed = isnull(SUM(Payment.amt),0) from Kuri.Paymen
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 错误:
表结构是这样的 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命令应该工作 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读