Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --5.5.Задачи
- --Задача 5-1.
- --Да се създаде изглед, който съдържа имената на продуктите и общо поръчано
- --количество от продукт.
- --Задача 5-2.
- --Да се създаде изглед, който съдържа десетимата клиенти с най-голям брой
- --поръчки. Ако последният клиент има равен брой поръчки с други клиенти,
- --те също да участват в изгледа.
- ---------------------------------------------------------------------------------------------------
- ----------------------------------------------ТРАНЗАКЦИИ-------------------------------------------
- ---------------------------------------------------------------------------------------------------
- --6.4.Примери
- --Пример 6-1.
- --транзакция, която добавя нов клиент и създава поръчка за него, включваща два продукта.
- /*Пример 6-2.
- транзакция, която променя фамилията на клиент с идентификатор = 1001,
- след което отхвърля направените промени.*/
- /*Пример 6-3.
- транзакция, която въвежда нов клиент, поставя точка на запис,
- въвежда поръчка, след което отхвърля промените до точката на запис, т.е.
- отхвърля се само поръчката.*/
- ---6.5.Задачи
- -- Задача 6-1.
- -- Транзакция, която има за цел да изтрие отдел „Мениджмънт“,
- -- като преди това прехвърли всички служители от него в отдел „Администрация“.
- --Задача 6-2.
- --Транзакция, която изтрива продукт 1726 -първо го изтрива от всички поръчки
- --после от таблицата с продукти, и накрая отхвърля направените промени.
- ---6.6.3. Deadlock ситуации - демо
- /*Ще стартираме 2 транзакции, които ще обновяват едни и същи редове в 2 т-ци,
- само редът на обновяване на т-ците ще е различен, за да се постигне заключване*/
- BEGIN TRAN
- UPDATE CUSTOMERS SET FNAME ='PETER' WHERE CUSTOMER_ID=101
- WAITFOR DELAY '00:00:05'
- UPDATE COUNTRIES SET NAME = 'ARGENTINA 2'WHERE COUNTRY_ID ='AR'
- COMMIT
- --Тази транзакция очевидно успя да приключи успешно.
- --Но втората транзакция показва съобщение за грешка:
- BEGIN TRAN
- UPDATE COUNTRIES SET NAME = 'ARGENTINA 1'WHERE COUNTRY_ID ='AR'
- WAITFOR DELAY '00:00:05'
- UPDATE CUSTOMERS SET FNAME ='JOHN' WHERE CUSTOMER_ID=101
- COMMIT
- --Тази транзакция беше избрана за жертва и не успя, нейните промени са отхвърлени.
- --Така Transaction Manager компонентът разреши ситуацията.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement