2009年8月20日木曜日

[.NET]IDENTITY指定のフィールドはロールバックしても元に戻らない(SQLServer

SQLServerにてIDENTITY指定のフィールドがあり、INSERT後にロールバックしてもIDENTITYはカウントアップするという現象が発生しました。
何で戻らないんだ?と思って調べてみると、@@IDENTITY (Transact-SQL)に戻らない的な説明が書いてありました。

GDD Blog: [他]IDENTITYフィールドに指定の値を突っこむ(SQLServer)の方法などで、IDENTITY指定されていても連番にすることはできるのですが。。。

といってもロールバックするケースというのは稀だし、型としてはintegerなので20億位の数値は作れる。そういう意味では会員のIDなどで利用する範疇では枯渇する可能性は低いのですが、なんか空き番があるのは気持ち的に。。。
連番に空きを作りたくない。という場合は、自力でなんらか実装するのがよいって事なんでしょうかねぇ。

0 件のコメント: