2013-11-23 8 views
2

Я только что должен был сделать экзамен SQL, и я действительно боролся с 2 вопросами по транзакциям, он был представлен, так что это только для моего здравомыслия ... Каковы ответы на эти вопросы?Поведение явных транзакций SQL Server

Извините, если этого не должно быть здесь, или если это должны быть два отдельных вопроса.

1.

Employee X has a salary of 40,000 
a. User A begins a transaction and updates employee X's salary to salary * 1.1 
b. User B begins a transaction and updates employee X's salary to salary * 1.25 
c. User A rolls back their transaction 
d. User B commits their transaction 

Какова зарплата работника, Х? (я пошел с 50000, не было никакого упоминания уровня изоляции транзакций)

2. Сценарий строится следующим образом -

a. Transaction start 
b. Insert record into table 1 
c. Create savepoint 
d. Insert record into table 2 
e. Rollback to the save point created after the insert into table 1 
f. Insert a record into table 3 
g. Commit the transaction 

Какие таблицы были записи вставлены в? (я пошел только с таблицей 1)

+2

Чувства, подобные уровню изоляции, должны быть весьма важными для # 1, например, 'READ UNCOMMITTED' и' SERIALIZABLE'. –

+0

Вот что я думал, пока я пытался ответить на вопрос, не мог понять, как я мог сказать, не зная. – user1948635

+2

Если вы используете уровень 'READ COMMITTED' по умолчанию, ваш ответ будет правильным. –

ответ

6

Для вашего вопроса 1, если у нас есть уровень изоляции транзакций по умолчанию i.e Read Committed. ваш ответ правильный.

Вопрос 1

  1. Пользователь один Begin транзакцию и не совершает его
  2. Пользователю две попытки обновить ту же запись, но его обновление не будет заблокирован до тех пор, пользователь один откатывает его транзакции, но как только он откатится от своей транзакции, он будет обновлен до Salary * 1.25, который составляет 50000.

Вопрос 2

  1. Запись вставлена ​​в одну таблицу с точки сохранения означает, что, если эта транзакция откатывается это не будет откатить все, но к последней сохраненной точке.
  2. Вставьте в таблицу 2, а затем откат назад, который откатит вставку в таблицу 2, но не входит в таблицу 1, которая защищена точкой сохранения.
  3. Вставьте в таблицу 3 и запишите. Это позволит сохранить вставки в таблицу 1 и 3 на диск.
+1

Спасибо за подробный ответ – user1948635

0

Извините, я не получил ваш 1-й вопрос.

Для вопроса 2 данные будут вставлены в таблицы 1 и таблицу3.

Смежные вопросы