Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Server гарантира ли последователно вмъкване на колона за самоличност?

Гарантирано, тъй като при абсолютно никакви обстоятелства не бихте могли да получите стойност, която може да е по-малка или равна на текущата максимална стойност? Не, няма такава гаранция. Въпреки това обстоятелствата, при които този сценарий може да се случи, са ограничени:

  1. Някой деактивира вмъкването на самоличност и вмъква стойност.
  2. Някой поставя повторно колоната за самоличност.
  3. Някой промени знака на нарастващата стойност (т.е. вместо +1 се променя на -1)

Ако не приемем нито едно от тези обстоятелства, вие сте в безопасност от условия на състезание, създаващи ситуация, при която следващата стойност е по-ниска от съществуваща стойност. Въпреки това няма гаранция, че редовете ще бъдат заети в реда на стойностите на тяхната идентичност. Например:

  1. Отворете транзакция, вмъкнете в таблицата си с колона за самоличност. Да кажем, че получава стойност 42.
  2. Вмъкване и записване в същата таблица на друга стойност. Да кажем, че получава стойност 43.

Докато първата транзакция не бъде ангажирана, 43 съществува, но 42 не. Колоната за самоличност просто резервира стойност, тя не диктува реда на ангажиментите.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. единична заявка за изтриване от множество таблици в sql сървър

  2. Как да коригирате грешката „функцията datediff доведе до преливане“ в SQL Server

  3. Изпълнете sp_executeSql за select...in #table, но не можете да изберете данни от Temp Table

  4. sql заявка за динамично добавяне на фискален месец с помощта на осно

  5. Какво е логически оператор И в SQL Server - SQL Server / TSQL урок, част 120