none
IDENTITY属性設定時のユニークの保障について

    質問

  • お世話になります。

    IDENTITY属性を設定し自動でユニークな連番を付けてINSERTしようとしています。
    そこで、質問なのですがIDENTITYはユニークになることが保障されているでしょうか?
    例えば、2、300の処理が同時にINSERTしたとき、絶対に重複しないと保障できるのでしょうか?
    あるサイトで、2CPUマシンなどでは同一番号が割り振られたみたいな記事を見たので質問させていただきました。

    よろしくお願いします。

    2012年5月17日 8:25

回答

すべての返信

  • column_definition (Transact-SQL)

    リンク先を読む限りユニークであることは保証されているようです。

    新しい列が ID 列であることを指定します。 SQL Server データベース エンジンは、列に一意な増分値を設定します。


    Blog:プログラマーな日々 http://d.hatena.ne.jp/JHashimoto/

    2012年5月17日 10:16
  • 回答ありがとうございます。

    ちなみに重複する場合があるという記事が載っていたのは
    http://out2dev.blogspot.jp/2011/06/identity.html
    です。

    2012年5月17日 11:00
  • http://out2dev.blogspot.jp/2011/06/identity.html

    http://blog.sqlauthority.com/2009/03/24/sql-server-2008-scope_identity-bug-with-multi-processor-parallel-plan-and-solution/

    http://connect.microsoft.com/SQL/feedback/ViewFeedback.aspx?FeedbackID=328811

    とたどると

    You may receive incorrect values when using SCOPE_IDENTITY() and @@IDENTITYにはSQL Server 2008 R2 SP1 CU5で修正済みとなっていますが…。

    2012年5月17日 21:26
  • こんにちは、ndb さん。

    MSDN フォーラムのご利用ありがとうございます。オペレーターの山本です。

    参考になる情報をいただいているように思われましたので、勝手ながら私の方で一旦回答としてマークさせていただきました。
    情報くださったみなさん、ありがとうございます。

    いただいた情報の中で、解決に役立った投稿や、参考になる情報など有効な情報には回答としてマークすることをお願いしています。
    今後、同じ問題でこのスレッドを参照される方にも、有効な情報を活用いただけるかと思いますのでご協力よろしくお願いいたします。
    今後とも、MSDN フォーラムのご利用をよろしくお願いいたします。
    ____________                                                 
    日本マイクロソフト株式会社 フォーラム オペレーター 山本 春海

    2012年5月28日 7:56
    モデレータ