Skip to content Skip to sidebar Skip to footer

Replace A Computed Column With A Logic That Works With INSERT

I have a table called tblPacks. CREATE TABLE [dbo].[tblPacks] ( [ID] [int] NOT NULL, [BatchNumber] [varchar](30) NULL, [PackID] VARCHAR(50), [St

Solution 1:

I have simplified the logic a bit for generating PackID

Add a new column(identifier) for identifying the code and use it for PackID generation and for sequence use Identity column

CREATE TABLE [dbo].[tblPacks]
  (
     Iden_ID       INT IDENTITY(1, 1),
     [ID]          [INT] NOT NULL,
     [BatchNumber] [VARCHAR](30) NULL,
     [Identifier]  [VARCHAR](50),
     [PackID] AS [Identifier]
        + CASE
            WHEN Iden_ID <= 999 THEN RIGHT('00' + CONVERT(VARCHAR(3), ID), 3)
            ELSE CONVERT([VARCHAR](20), ID, 0)
          END,
     [Status]      [INT] NULL
  ) 

To check the working

INSERT INTO [dbo].[tblPacks]
            ([ID],identifier,[BatchNumber],[Status])
VALUES      (1,'pk','bat',1)

SELECT *
FROM   [tblPacks] 

Post a Comment for "Replace A Computed Column With A Logic That Works With INSERT"