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

Опасност от използването на 'IF EXISTS... UPDATE .. ELSE .. INSERT' и каква е алтернативата?

Използвайте ОБЛИВАНЕ

Вашият SQL се проваля, защото 2 едновременни припокриващи се и много близки извиквания ще получат "false" от EXISTS, преди да се случи INSERT. И двамата се опитват да INSERT и, разбира се, единият не успява.

Това е обяснено повече тук:Избор/Вмъкване на версия на Upsert:има ли шаблон за проектиране за висока едновременност? Този отговор обаче е стар и се прилага преди добавянето на MERGE



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Свържете SAP IQ към SQL Server

  2. Разлика между извършено четене и повторяемо четене

  3. Дали един израз на SQL Server е атомичен и последователен?

  4. Репликацията на Sql сървър изисква действителното име на сървъра, за да се осъществи връзка със сървъра

  5. Групирайте последователни редове с една и съща стойност, като използвате интервали от време