システムに必要なテーブルで、自動的に番号を振っていくものが必要なときがあります。 たとえば、各種の伝票データの伝票番号の様なものです。
プログラム処理上、データを登録した直後に、自動採番された値を取得し何かに使いたいことがよくあります。
SQL-Serverでは現在の自動採番の値を取得する方法が用意されています。
取敢えず自動採番を行える簡単なテーブルの例を示します。(前回ストアド・ファンクションで使用したテーブルに細工します。)
まず、テストテーブルBに1件データを挿入します。 「ID」は自動採番の設定なので登録する値は設定しません。
■自動採番された値を取得
この直後に、設定された「ID」値を取得するには以下のSELECT文を実行します。
結果として「1」という値が返されます。
■自動採番された値をリセット
デバッグ途中でテーブルのデータを全て削除して、さらに自動採番が「1」からにしたい場合はよくあります。 そのときに以下の命令をクエリアナライザ等で実行します。
自動採番の値を「0」にする命令ですが、実際INSERT実行時には+1された値が「ID」に設定されます。
■関連記事
⇒VB.NET:ADO.NETを使用したSQL-ServerのテーブルのCSV出力
⇒BCPコマンドでUnicode文字形式を使用したデータのインポート及びエクスポート(SQL Server)について
⇒ADO.NET での DataReader の入れ子エラー
⇒ADO.NET を使用した SQL-Server へのアクセス・クラス
⇒SQL-Serverのストアド・ファンクションではUPDATEなどが実行できない
⇒SQL-Serverのユーティリティ(BCPコマンド)を利用したテーブルへのインポート・エキスポート
⇒SQL-Serverのプロシージャ生成のバッチ実行
⇒SQL-Serverの関数・プロシージャのVB.NETでの実行