Advertisement
madanska

19.11

Nov 18th, 2020
1,322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 3.29 KB | None | 0 0
  1. --5.5.Задачи
  2.  
  3. --Задача 5-1.
  4. --Да се създаде изглед, който съдържа имената на продуктите и общо поръчано
  5. --количество от продукт.
  6.  
  7.  
  8. --Задача 5-2.
  9. --Да се създаде изглед, който съдържа десетимата клиенти с най-голям брой
  10. --поръчки. Ако последният клиент има равен брой поръчки с други клиенти,
  11. --те също да участват в изгледа.
  12.  
  13. ---------------------------------------------------------------------------------------------------
  14. ----------------------------------------------ТРАНЗАКЦИИ-------------------------------------------
  15. ---------------------------------------------------------------------------------------------------
  16. --6.4.Примери
  17. --Пример 6-1.
  18. --транзакция, която добавя нов клиент и създава поръчка за него, включваща два продукта.
  19.  
  20. /*Пример 6-2.
  21. транзакция, която променя фамилията на клиент с идентификатор = 1001,
  22. след което отхвърля направените промени.*/
  23.  
  24. /*Пример 6-3.
  25. транзакция, която въвежда нов клиент, поставя точка на запис,
  26. въвежда поръчка, след което отхвърля промените до точката на запис, т.е.
  27. отхвърля се само поръчката.*/
  28.  
  29. ---6.5.Задачи
  30.  
  31.     -- Задача 6-1.
  32.     -- Транзакция, която има за цел да изтрие отдел „Мениджмънт“,
  33.     -- като преди това прехвърли всички служители от него в отдел „Администрация“.
  34.  
  35.     --Задача 6-2.
  36.     --Транзакция, която изтрива продукт 1726 -първо го изтрива от всички поръчки
  37.     --после от таблицата с продукти, и накрая отхвърля направените промени.
  38.  
  39.  
  40. ---6.6.3. Deadlock ситуации - демо
  41.  
  42. /*Ще стартираме 2 транзакции, които ще обновяват едни и същи редове в 2 т-ци,
  43. само редът на обновяване на т-ците ще е различен, за да се постигне заключване*/
  44.  
  45. BEGIN TRAN
  46. UPDATE CUSTOMERS SET FNAME ='PETER' WHERE CUSTOMER_ID=101
  47. WAITFOR DELAY '00:00:05'
  48. UPDATE COUNTRIES SET NAME = 'ARGENTINA 2'WHERE COUNTRY_ID ='AR'
  49. COMMIT
  50.  
  51. --Тази транзакция очевидно успя да приключи успешно.
  52. --Но втората транзакция показва съобщение за грешка:
  53.  
  54. BEGIN TRAN
  55. UPDATE COUNTRIES SET NAME = 'ARGENTINA 1'WHERE COUNTRY_ID ='AR'
  56. WAITFOR DELAY '00:00:05'
  57. UPDATE CUSTOMERS SET FNAME ='JOHN' WHERE CUSTOMER_ID=101
  58. COMMIT
  59. --Тази транзакция беше избрана за жертва и не успя, нейните промени са отхвърлени.
  60. --Така Transaction Manager компонентът разреши ситуацията.
  61.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement