Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Problem z równoczesną transakcją SQL Server

Czy to wszystko w jednym z komponowanym DML?

INSERT INTO order_item (item_no, order_id)
SELECT 
    X.item_no, @order_id
FROM
    (
    MERGE INTO items AS tgt
    USING
      (SELECT TOP (@whatever) item_no
       FROM items
       WHERE status = 'Unused'
      ) AS src ON tgt.item_no = src.item_no
    WHEN MATCHED
      UPDATE SET status = 'Used'
      OUTPUT $action as action, item_no -- $action needed for more complex stuff
    ) AS X
-- WHERE action = 'UPDATE' -- needed for more complex stuff


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sterownik nie mógł nawiązać bezpiecznego połączenia z programem SQL Server przy użyciu szyfrowania Secure Sockets Layer (SSL)

  2. Ulubione triki dostrajania wydajności

  3. Konfigurowanie powiadomień o poczcie bazy danych w MS SQL Server

  4. rozwiązywanie problemu z kursorami

  5. SQL do przeanalizowania ciągu klucz-wartość