sql >> Database teknologi >  >> RDS >> Sqlserver

erstatte en beregnet kolonne med en logik, der fungerer med INSERT

Jeg har forenklet logikken lidt for at generere PackID

Tilføj en ny kolonne(identifier ) til at identificere koden og bruge den til PackID generering og til sekvensbrug Identity kolonne

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
  ) 

For at kontrollere, om det virker

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

SELECT *
FROM   [tblPacks] 



  1. MySQL – Gendan tabt præstationsskemadatabase

  2. Kan jeg bruge MySQL LOAD XML LOCAL INFILE, hvis mine rækker ikke har et 'navn'?

  3. Der skelnes mellem store og små bogstaver i restriktioner "er lig med id" i Dvale-restriktioner

  4. Migrering af PostgreSQL-databaser fra on-prem til skyen ved hjælp af AWS RDS