1. Öğren
  2. /
  3. Kurs
  4. /
  5. SQL Server におけるトランザクションとエラー処理

Connected

Egzersiz

READ UNCOMMITTED 分離レベルを使う

新しい顧客が口座開設のために来店しました。あなたはその顧客データをシステムに登録し、次のようなスクリプトが実行され始めます。

BEGIN TRAN

  INSERT INTO customers (first_name, last_name, email, phone)
  VALUES ('Ann', 'Ros', '[email protected]', '555555555')

  DECLARE @cust_id INT = scope_identity()

  INSERT INTO accounts (account_number, customer_id, current_balance)
  VALUES ('55555555555010121212', @cust_id, 150)

COMMIT TRAN

ちょうどそのとき、マーケティング担当の同僚が全顧客にメール送信を開始しました。なんと車の抽選を行うのです! 彼が実行するスクリプトは、あなたが直前に追加した顧客を含む全顧客のデータを取得します。このスクリプトは、最初の INSERT が行われた後、しかし COMMIT TRAN の前に走り始めました。

なぜそんなことが起きるのでしょうか。

Talimatlar

100 XP
  • READ UNCOMMITTED の分離レベルを設定してください。
  • customers テーブルから first_name、last_name、email、phone を選択してください。