存储一个数字并用存储过程增加一个

时间:2016-09-19 13:23:29

标签: c# sql sql-server stored-procedures

我正在尝试存储代码,并使用新的表单提交(使用Authorize.Net的付款表单)增加一个。但是我回到了一些奇怪的数字。例如,有一点从66到55到73!

  

NULL,NULL,84,83,83,82,82,NULL,81,80,NULL,80,80,NULL,   NULL ... 75,74,73,55,66,72,NULL,71,71,70 ......

我在想我的存储过程需要改变,但我正在寻找一些建议,因为我不明白为什么会发生这种情况。

1 个答案:

答案 0 :(得分:3)

您应该让数据库管理标识列,因为它比您的应用程序更能够实现这一点。只需在付款表中添加新的IDENTITY列即可。这样您还可以轻松识别针对一张发票的多笔付款。

ALTER TABLE Payment ADD PaymentID INT IDENTITY(1,1) NOT NULL

//This does not change
INSERT INTO Payment (EventCode, EventInstance, EventCount, InvoiceNumber)

//MAX Payment for invoice 
SELECT PaymentID=MAX(PaymentID)  FROM Payment 
  WHERE (EventCode = @EventCode AND
        EventInstance = @EventInstance)

//OR Since you just inserted on the same connection simply use @IDENTITY
SELECT PaymentID=@IDENTITY