sql >> データベース >  >> RDS >> Sqlserver

計算列を INSERT で機能するロジックに置き換える

    PackID を生成するためのロジックを少し単純化しました

    新しい列を追加します(identifier ) を使用してコードを識別し、それを PackID に使用します 生成とシーケンスの使用 Identity

    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
      ) 
    

    動作を確認するには

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



    1. SQL Server(T-SQL)でドイツ語形式で日付を表示する方法

    2. マテリアライズドビューの更新中にPostgres9.4がハングする

    3. mysql_escape_stringポスト配列全体?

    4. MySQLのBLOB列内の値を検索します