zoukankan      html  css  js  c++  java
  • SQL-Serverの自動採番(IDENTITY値)の取得・リセット

    システムに必要なテーブルで、自動的に番号を振っていくものが必要なときがあります。 たとえば、各種の伝票データの伝票番号の様なものです。

    プログラム処理上、データを登録した直後に、自動採番された値を取得し何かに使いたいことがよくあります。
    SQL-Serverでは現在の自動採番の値を取得する方法が用意されています。

    取敢えず自動採番を行える簡単なテーブルの例を示します。(前回ストアド・ファンクションで使用したテーブルに細工します。)

    1. CREATE TABLE [dbo].[TABLE_B](  
    2.     [ID] [int] IDENTITY(1,1) NOT NULL,  
    3.     [DATA1] [nvarchar](50) COLLATE Japanese_CI_AS NULL,  
    4.     [DATA2] [nvarchar](50) COLLATE Japanese_CI_AS NULL,  
    5.  CONSTRAINT [PKEY_TW_MAG_ADDR] PRIMARY KEY CLUSTERED   
    6. (  
    7.     [ID] ASC  
    8. )WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]  
    9. ) ON [PRIMARY]  



    まず、テストテーブルBに1件データを挿入します。 「ID」は自動採番の設定なので登録する値は設定しません。

    1. INSERT INTO TABLE_B (DATA1, DATA2)  
    2. VALUES('A0001', 'B0001')  

    ■自動採番された値を取得
    この直後に、設定された「ID」値を取得するには以下のSELECT文を実行します。

    1. SELECT IDENT_CURRENT('TABLE_B') AS LASTID  

    結果として「1」という値が返されます。

    ■自動採番された値をリセット
    デバッグ途中でテーブルのデータを全て削除して、さらに自動採番が「1」からにしたい場合はよくあります。 そのときに以下の命令をクエリアナライザ等で実行します。

    1. DBCC CHECKIDENT('TABLE_B', RESEED, 0)  

    自動採番の値を「0」にする命令ですが、実際INSERT実行時には+1された値が「ID」に設定されます。

  • 相关阅读:
    python __builtins__ set类 (60)
    python __builtins__ reversed类 (58)
    python __builtins__ range类 (56)
    python __builtins__ property类 (55)
    python __builtins__ memoryview类 (46)
    python __builtins__ map类 (44)
    python __builtins__ list类 (42)
    python __builtins__ license类 (41)
    (转)面试算法总结
    (Mark)JS中的上下文
  • 原文地址:https://www.cnblogs.com/songshu/p/5306530.html
Copyright © 2011-2022 走看看