Сақталған процедурада транзакцияны пайдалана аламыз ба?
Сақталған процедурада транзакцияны пайдалана аламыз ба?

Бейне: Сақталған процедурада транзакцияны пайдалана аламыз ба?

Бейне: Сақталған процедурада транзакцияны пайдалана аламыз ба?
Бейне: Бүкіл отбасы үшін сорпа! РАССОЛНИК ҚАЗАНДА! ҚАЛАЙ ПІСІРУ КЕРЕК 2024, Қараша
Anonim

Егер біз ішінде орындалатын бірнеше SQL операторлары бар сақталатын процедура және біз SQL мәлімдемелерінің біріне байланысты қате орын алған жағдайда, SQL мәлімдемелерінің кез келгені жасаған кез келген өзгерістерді кері қайтарғыңыз келсе, біз сақталған процедурада транзакцияны пайдалана аламыз.

Сонымен, сақталған процедуралар транзакцияда орындала ма?

Кірістірілген сақталатын процедуралар болып табылады орындалды ішінде транзакция ең сыртқы контекст сақталатын процедура . Бұл әдепкі параметр. Жоғарыда сипатталған әдепкі әрекетті қамтамасыз етеді. Яғни, а ішіндегі барлық SQL операторлары сақталған процедураны орындау жалғыз ретінде транзакция блок.

Жоғарыда көрсетілгеннен басқа, біз процедурада commit пайдалана аламыз ба? Жалпы алғанда, процедуралар болмауы керек міндеттеу . Егер де сен міндеттеу сақтаудың ішінде процедура , сіз оның қайта пайдалану мүмкіндігін шектейсіз, себебі қоңырау шалушы өзгерткісі келеді процедура үлкен транзакцияның бөлігі болуды жай ғана шақыра алмайды процедура тікелей.

Осыған байланысты транзакцияны SQL функциясында пайдалана аламыз ба?

1 Жауап. Сондықтан транзакциялар үшін қажет емес sql -сервер функциялары . Дегенмен, сіз алады өзгерту транзакция оқшаулау деңгейі, мысалы, мүмкін пайдалану NOLOCK "оқылмаған" дегенге жету үшін кеңес береді транзакция оқшаулау деңгейі және басқалардан қабылданбаған деректерді оқу транзакциялар.

SQL-де кірістірілген транзакцияларды пайдалана аламыз ба, егер солай болса, қалай?

SQL Сервер шынымен қолдамайды кірістірілген транзакциялар . Бір ғана транзакция бір уақытта. Мынау транзакция негізі бар кірістірілген транзакция есептегіш, @@TRANCOUNT. Әрбір дәйекті басталады транзакция қадамдар the бір-бірден есептеңіз, әрбір орындаңыз транзакция оны бір азайтады.

Ұсынылған: