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

Как SQL Server генерира стойности в колона за самоличност?

Правите често срещаната заблуда да приемате ред в таблицата. Масите нямат ред. Само резултатите имат ред, който е неопределен, освен ако не е указано изрично ORDER BY.

Може да зададете различен въпрос:как се присвоява генерираната самоличност стойност в случай на едновременни вмъквания? Отговорът е прост:няма значение . И ако направите някакво предположение за поръчката, вашият код е повреден. Същото важи и за пропуските. Вашето приложение трябва да работи дори ако генерираните самоличности са напълно случайни и правилно написано приложение ще работи, ако самоличността е напълно произволна. Използвайте SCOPE_IDENTITY() за извличане на последната въведена самоличност. Още по-добре използвайте OUTPUT клауза на INSERT , работи и за многоредови вложки.

За протокола:самоличностите се генерират в реда, в който операциите получават достъп до лог поток .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Къде се съхраняват регистрираните сървъри?

  2. java.sql.SQLException:Не е намерен подходящ драйвер за jdbc:microsoft:sqlserver

  3. Разбор на OpenXML с множество елементи с едно и също име

  4. Производителност на свързания сървър на SQL Server

  5. Получаване на грешка при изпълнение на 50 MB скрипт на SQL Server 2008 R2