如何创建PK,因为我需要我的代码附加SQL Server 2008



我正在尝试创建 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

希望您的建议谢谢

在 PK 上使用标识属性,并在视图中添加"CP-"的业务逻辑。

有关 indentiy 的更多详细信息,请参见此处

最新更新