sql >> Databáze >  >> RDS >> Sqlserver

nahraďte vypočítaný sloupec logikou, která pracuje s INSERT

Trochu jsem zjednodušil logiku pro generování PackID

Přidejte nový sloupec (identifier ) pro identifikaci kódu a použijte jej pro PackID generování a pro sekvenci použijte Identity sloupec

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
  ) 

Chcete-li zkontrolovat fungování

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

SELECT *
FROM   [tblPacks] 



  1. Parametrizace klauzule Mysql IN v PHP, Python

  2. Java7 sqljdbc4 - Chyba SQL 08S01 na getConnection()

  3. Škálovatelné procesory Intel Xeon a SQL Server 2017

  4. Získávání výstupní vyrovnávací paměti z DBMS_OUTPUT.GET_LINES v C#