none
自動採番をやめたいidをfalseにする方法

    質問

  • sql server11.0にてidentityで自動採番して運用してますがsql serverが再起動するたびに1000番skipされてしまいます。

    そこでこれをやめたいのですがalter文の形式がわからなくて困ってます。

    当然asp.netの方も変更しますがsql server側のalter文がわからないのです。

    わかる方がいましたらお願いします。

    2019年5月14日 2:48

すべての返信

  • > sql server11.0にてidentityで自動採番して運用してますがsql serverが再起動するたびに1000番skipされてしまいます。

    11.0 ということは SQL Server 2012 ですね。それは仕様のようです。以下の記事の Answer を見てください。

    Workaournd が書いてありますが、仕様ということスキップされるのは気にしないというのが正しい対応のようです。

    Identity increment is jumping in SQL Server database
    https://stackoverflow.com/questions/14146148/identity-increment-is-jumping-in-sql-server-database
    2019年5月14日 3:11
  • タイトルからすると、自動採番を止めたいので列のIdentityプロパティをfalseにしたいということのようにも読み取れます。
    もしそうであれば、それはalterではできません。テーブルの作成し直しになります。
    推薦はされていませんが、SQL Server Mangement Studioで「テーブルの再生成を必要とする変更を保存できないようにする」のチェックを外せば、Identityプロパティをfalseに設定できます。もし、手動で行うのあれば、データを退避させ、Identityプロパティがfalseの列を持つテーブルを仮に生成し、そこに退避させておいたデータを戻し、元のテーブルを削除し、仮のテーブルを元のテーブルの名前にリネームすることになります。結局はSQL Server Mangement Studioと同じような作業を行うことになります。

    ★良い回答には質問者は回答済みマークを、閲覧者は投票を!

    2019年5月14日 8:46