Видео: Можем ли да използваме транзакция в съхранена процедура?
2024 Автор: Lynn Donovan | [email protected]. Последно модифициран: 2023-12-15 23:43
Ако ние да имат повече от един SQL оператори в изпълнение в съхранена процедура и ние искате да върнете обратно всички промени, извършени от който и да е от SQL операторите, в случай че възникне грешка поради един от SQL операторите, можем да използваме транзакция в съхранена процедура.
Точно така, изпълняват ли се съхранените процедури в транзакция?
Вложени съхранени процедури са изпълнен в транзакция контекста на най-външното съхранена процедура . Това е настройката по подразбиране. Осигурява поведението по подразбиране, описано по-горе. Тоест всички SQL изрази в a запомнената процедура се изпълнява като сингъл транзакция блок.
Освен по-горе, можем ли да използваме commit в процедура? Общо взето, процедури не трябва ангажират . Ако ти ангажират вътре в склад процедура , ограничавате повторното му използване, защото обаждащ се, който иска промените процедура прави да бъде част от по-голяма транзакция не може просто да извика процедура директно.
По отношение на това, можем ли да използваме транзакция в SQL функция?
1 отговор. Ето защо транзакции са ненужни за sql -сървър функции . Вие обаче мога промяна транзакция ниво на изолация, например, можете използване NOLOCK намек за достигане до „четене без ангажимент“ транзакция ниво на изолация и четене на незаети данни от други транзакции.
Можем ли да използваме вложени транзакции в SQL, ако да, тогава как?
SQL Сървърът наистина не поддържа вложени транзакции . Има само един транзакция на време. Този транзакция има основен вложена транзакция брояч, @@TRANCOUNT. Всяко поредно започване транзакция нараства на брояч по един, всеки комит транзакция го намалява с едно.
Препоръчано:
Защо използваме съхранена процедура в MySQL?
Съхранените процедури помагат за намаляване на мрежовия трафик между приложенията и MySQL Server. Тъй като вместо да изпращат множество дълги SQL оператори, приложенията трябва да изпращат само името и параметрите на съхранените процедури
Как да актуализирате съхранена процедура в SQL Server?
С помощта на SQL Server Management Studio Разгънете Бази данни, разширете базата данни, към която принадлежи процедурата, и след това разгънете Програмируемост. Разгънете Съхранени процедури, щракнете с десния бутон върху процедурата, за да промените, и след това щракнете върху Промяна. Променете текста на съхранената процедура. За да тествате синтаксиса, в менюто Заявка щракнете върху Синтаксис
Можем ли да използваме DDL израз в процедура в Oracle?
DDL изразите не са разрешени в процедурите (PLSQL BLOCK) PL/SQL обектите са предварително компилирани. От друга страна, DDL (език за дефиниране на данни) изрази като команди CREATE, DROP, ALTER и DCL (език за управление на данни) като GRANT, REVOKE могат да променят зависимостите по време на изпълнението на програмата
Можем ли да предадем масив на съхранена процедура в SQL Server?
Няма поддръжка за масив в sql сървъра, но има няколко начина, по които можете да предадете колекция към съхранен процес
Можем ли да използваме DDL в съхранената процедура?
Можете да използвате само изрази DDL COMMENT в съхранена процедура. Не можете да зададете DML изрази COMMENT, които са ограничени до вградени SQL приложения, за да извлечете коментарите за обекти на база данни, колони на таблица и параметри