我正在尝试存储代码,并使用新的表单提交(使用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 ......
我在想我的存储过程需要改变,但我正在寻找一些建议,因为我不明白为什么会发生这种情况。
答案 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