我正在尝试创建 PK,CP-00001
但我的代码正在创建 PK,因为INV-19072013-0001
在我的存储过程中我需要创建,CP-00001
如果不存在行,否则它会在以前的 id 中递增,然后 id 变为CP-00002
这是我的存储过程:
ALTER procedure [dbo].[sp_AutoGenerateInoviceNumber]
AS
Declare @InvNumberDate varchar(15)
Select @InvNumberDate = REPLACE(CONVERT(VARCHAR(10), GETDATE(), 105),'-','')
Declare @NewNumber varchar(20)
If Exists (Select 1 from tbl_InvoiceMaster Where InvoiceNo LIKE '%'+ @InvNumberDate +'%')
Begin
Select Top 1 @NewNumber = InvoiceNo
from tbl_InvoiceMaster
Where InvoiceNo LIKE '%'+ @InvNumberDate +'%'
order by ROW_ID desc
Declare @NewSerialNo varchar(10)
Set @NewSerialNo = SUBSTRING(@NewNumber, CHARINDEX('-',@NewNumber, 5) + 1, LEN(@NewNumber))
Set @NewNumber = SUBSTRING(@NewNumber, 0, CHARINDEX('-',@NewNumber, 5))
Select @NewNumber = @NewNumber + '-' + dbo.func_IncrementNumber(@NewSerialNo)
End
Else
Set @NewNumber = 'INV-'+@InvNumberDate+'-0001'
Select @NewNumber
希望您的建议谢谢