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

先頭に埋め込みゼロが付いたSQLID

    他の人がすでに正しく指摘しているように(INTには先行ゼロはありません)、それは値を保持するだけです、それがすべてです(そしてそれはそのように良いです)。

    追加の書式設定が必要な場合は、いつでも次のような計算列をテーブルに追加できます。

    ALTER TABLE dbo.Identitytest
      ADD DisplayNumber AS  RIGHT('000' + CAST(number AS VARCHAR(3)) , 3) PERSISTED
    

    このように、INT IDENTITYはINTとして使用され、常に数値が含まれますが、DisplayNumber 001, 002, ... 014, 015, .....が含まれています など-自動的に、常に最新の状態になります。

    永続化されたフィールドであるため、テーブルの一部になり、クエリを実行したり、インデックスを作成してクエリを高速化したりすることもできます。

    SELECT value FROM dbo.IdentityTest WHERE DisplayNumber = '024'
    

    もちろん、計算列の定義にはほぼすべての書式を使用できるため、接頭辞などを追加することもできます。

    ALTER TABLE dbo.Identitytest
      ADD DisplayNumber 
          AS  'ABC-' + RIGHT('000' + CAST(number AS VARCHAR(3)) , 3) PERSISTED
    

    したがって、この場合、DisplayNumber ABC-001, ABC-002, ...になります など。

    両方の長所を活用できます。数値でSQLServerによって自動的に増加するINTIDENTITYを維持し、表示形式を好きなように定義して、いつでも利用できるようにすることができます。



    1. IBMDB2とIRIソフトウェアの接続

    2. 特定のアプリケーションにのみoracledbログインを許可しますか?

    3. ElasticSearchへのMysqlクエリ

    4. #1062-キー「PRIMARY」の重複エントリ