我的數據庫中有一張發票表,其中插入了新的發票。最近我們升級了我們的服務,並有許多用戶將發票插入表格。我編寫了一個函數來計算序列中的下一個發票號(序列不僅僅是順序編號)。在插入語句中使用SQL函數
MAX(CAST(SUBSTRING([InvoiceNumber], 3, LEN([InvoiceNumber]) - 2) AS INT)) FROM [Invoice] WHERE [InvoiceNumber] LIKE @Prefix + '%'
我現在想在INSERT語句中使用此功能如下
INSERT INTO [Invoice]
([InvoicedTo]
,[InvoiceNumber]
,[InvoiceDate]
,[Description]
,[Amount])
VALUES
(@InvoicedTo
,NextInvoiceNumber(@Prefix)
,@InvoiceDate
,@Description
,@Amount)
我要確保使用此insert語句將保證發票號碼不能重複多次當用戶什麼正在生成發票。如果它可能導致重複,我將不勝感激關於如何停止任何重複發生的建議。
很多謝謝,保羅