ОқУ-Әдістемелік кешен қарағанды 2012 Құрастырған



бет39/52
Дата26.01.2023
өлшемі0,93 Mb.
#63105
түріПрограмма
1   ...   35   36   37   38   39   40   41   42   ...   52
Байланысты:
MS SQL-де программалау

Тапсырмалар:

  1. Транзакцияларды басқару.

  2. Транзакция түрлері.

  3. Тосқауылды басқару

Транзакцияларды басқаруда қолданылатын үш команда бар:



  • COMMIT - өзгерістерді сақтау үшін;

  • ROLLBACK - өзгерістерді қабылдамау;

  • SAVEPOINT - қайтарымның ерекше нүктелерін құру.



Сақтау нүктесін қолдану:

BEGIN TRAN


SAVE TRANSACTION point1
point1 нүктесінде ЗАПЧАСТИ кестесінің алғашқы күйі сақталады.

DELETE FROM ПОКУПАТЕЛИ


WHERE номер_покупателя=8101
SAVE TRANSACTION point2
point2 нүктесінде номер_покупателя=8101 сатып алушысыз ПОКУПАТЕЛИ кестесінің күйі сақталады.

DELETE FROM ПОКУПАТЕЛИ


WHERE номер_покупателя=8102
SAVE TRANSACTION point3
point3 нүктесінде номер_покупателя 8101, 8102 номерімен сатып алушысыз ПОКУПАТЕЛИ кестесінің күйі сақталады.

DELETE FROM ПОКУПАТЕЛИ


WHERE номер_покупателя<>8103
ROLLBACK TRANSACTION point3
8101 және 8102 сатып алушысыз кесте күйіне келу қайтарылады, ақырғы жою жасалмайды.

ROLLBACK TRANSACTION point1


Кестенің алғашқы жағдайы қайтарылады.

SELECT * FROM ПОКУПАТЕЛИ


COMMIT
Алғашқы күйі сақталады.
Ішке салынған транзакциялар:

BEGIN TRAN


INSERT ЗАПЧАСТИ (название, нал_количество)
VALUES ('v',40)
BEGIN TRAN
INSERT ЗАПЧАСТИ (название, нал_количество)
VALUES ('n',50)
BEGIN TRAN
INSERT ЗАПЧАСТИ (название, нал_количество)
VALUES ('m',60)
ROLLBACK TRAN
Мұнда кестенің бастапқы қалпына келу жүзеге асырылады, себебі ROLLBACK TRAN командасының орындалуы транзакция аты көрсетілмей барлық транзакцияны шегіндіріледі.
SQL Server ANSI стандартымен анықталған жекешеленудің барлық төрт деңгейін қолдайды. Изоляциялану деңгейі келесі командамен орнатылады:
SET TRANSACTION ISOLATION LEVEL
{ READ COMMITTED | READ UNCOMMITTED
| REPEATABLE READ | SERIAIZABLE}

Әр уақыт сәтіне изоляцияланудың бір деңгейі мүмкін.


Транзакция қалай жұмыс істейді?
BEGIN TRAN u2
SAVE TRANSACTION p1

INSERT МАГАЗИНЫ VALUES(71, 'Астана', 'Центр',


305, 50000, 12000 )

INSERT МАГАЗИНЫ VALUES(72, 'Астана', 'Центр',


305, 60000, 13000 )

INSERT МАГАЗИНЫ VALUES(73, 'Абай', 'Центр',


308, 40000, 14000 )

INSERT МАГАЗИНЫ VALUES(74, 'Костанай', 'Север',


305, 50000, 15000 )

INSERT МАГАЗИНЫ VALUES(75, 'Абай', 'Центр',


308, 60000, 16000 )

SAVE TRANSACTION p2


DELETE FROM МАГАЗИНЫ WHERE номер_магазина=72


SAVE TRANSACTION p3


DELETE FROM МАГАЗИНЫ WHERE номер_магазина=75


SAVE TRANSACTION p4


DELETE FROM МАГАЗИНЫ WHERE номер_магазина<>71


ROLLBACK TRANSACTION p3


INSERT МАГАЗИНЫ VALUES(76,'Кокшетау', 'Север',


305, 50000, 15000)

COMMIT



Нәтиже:





Достарыңызбен бөлісу:
1   ...   35   36   37   38   39   40   41   42   ...   52




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет