sql >> データベース >  >> RDS >> Sqlserver

SQL Server は ID 列の順次挿入を保証しますか?

    いかなる状況においても、現在の最大値以下の値を取得できないことが保証されていますか?いいえ、そのような保証はありません。とはいえ、そのシナリオが発生する可能性のある状況は限られています:

    <オール>
  1. 誰かが ID の挿入を無効にして値を挿入します。
  2. 誰かが ID 列を再シードします。
  3. 誰かが増分値の符号を変更します (つまり、+1 の代わりに -1 に変更されます)
  4. これらの状況のいずれもないと仮定すると、次の値が既存の値よりも低い状況を作成する競合状態から安全です。とはいえ、行がコミットされるという保証はありません ID 値の順序で。例:

    <オール>
  5. トランザクションを開き、ID 列を使用してテーブルに挿入します。値 42 を取得するとしましょう。
  6. 同じテーブルに別の値を挿入してコミットします。値が 43 になるとしましょう。
  7. 最初のトランザクションがコミットされるまで、43 は存在しますが、42 は存在しません。 ID 列は単に値を予約しているだけであり、コミットの順序を指示しているわけではありません。



    1. データベースに接続するために付与されたロールを削除できません

    2. 最初のデータを繰り返さずに2つのテーブルのデータ?

    3. Rails on OSX 10.11 El Capitan:ライブラリがロードされていません:libmysqlclient.18.dylib

    4. 配列に特定の文字列が含まれているかどうかを確認するにはどうすればよいですか?