如何解决更新当前债务的存储过程
CREATE TABLE dbo.Debt
(Person varchar(100),Total int,LastPaid datetime)
INSERT dbo.Debt
VALUES ('John Pearson',22500,'3 Mar 2008 23:17'),('Peterson Lance',13500,'22 Feb 2010 10:16'),('Kenny Roger',35100,'21 May 2003 11:18'),('Mavricks Town',17530,'12 Apr 2008 20:33'),('Donny Delft',50100,'15 Jun 2011 19:43'),('Ann Patty',8100,'16 Dec 2012 12:53'),('Victor Roy',12100,'9 Nov 2013 13:33'),('Dayne Ted',26100,'3 Oct 2014 11:32')
需要一个存储过程来只更新高于当前值的值。一个债务人不能多次出现在列表中,如果他们的债务增加,那么它应该触发应该更新另一个表更新债务和移动。
我的查询工作正常,但需要更新运动:
ALTER PROCEDURE [dbo].[DebtList]
(
@Fname as nvarchar(20),@Debt as int
)
AS
BEGIN
IF EXISTS
(SELECT * from [Debts]
WHERE [Person]=@Fname
AND [Total]<=@Debt)
UPDATE [Debts]
SET [Person] = @Fname,[Total] = @Debt,[LastPaid] = getdate()
WHERE [Person]=@Fname
ELSE IF not EXISTS
(SELECT * from [Debts]
WHERE [Person] in (Select [Person] from [Debts] where Person=@Fname))
INSERT INTO [Debts]
([Person],[Total],[LastPaid])
VALUES
(@Fname,@Debt,getdate())
END
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。