微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

更新当前债务的存储过程

如何解决更新当前债务的存储过程

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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?