تصویری: آیا می توانیم از تراکنش در رویه ذخیره شده استفاده کنیم؟
2024 نویسنده: Lynn Donovan | [email protected]. آخرین اصلاح شده: 2023-12-15 23:46
اگر ما بیش از یک دستور SQL در حال اجرا در رویه ذخیره شده و ما میخواهید هر تغییری را که توسط هر یک از دستورات SQL انجام شده است، در صورت بروز خطا به دلیل یکی از دستورات SQL، برگردانید، می توانیم از تراکنش در رویه ذخیره شده استفاده کنیم.
درست است، آیا رویه های ذخیره شده در یک تراکنش اجرا می شوند؟
تو در تو رویه های ذخیره شده هستند اجرا شده در معامله زمینه بیرونی ترین رویه ذخیره شده . این تنظیمات پیش فرض است. رفتار پیش فرض توضیح داده شده در بالا را ارائه می دهد. یعنی تمام دستورات SQL در a اجرای رویه ذخیره شده به عنوان مجرد معامله مسدود کردن.
علاوه بر بالا، آیا می توانیم از commit در رویه استفاده کنیم؟ به طور کلی، رویه ها نباید مرتکب شدن . اگر شما مرتکب شدن داخل یک ذخیره شده روش ، قابلیت استفاده مجدد آن را محدود می کنید زیرا تماس گیرنده ای که می خواهد آن را تغییر می دهد روش باعث می شود که بخشی از یک تراکنش بزرگتر باشد، به سادگی نمی توان آن را فراخوانی کرد روش به طور مستقیم.
با توجه به این موضوع، آیا می توانیم از تراکنش در تابع SQL استفاده کنیم؟
1 پاسخ. از همین رو معاملات غیر ضروری هستند برای sql -سرور کارکرد . با این حال، شما می توان تغییر دادن معامله سطح انزوا، برای مثال، ممکن است استفاده کنید اشاره NOLOCK برای رسیدن به "خواندن نامتعهد" معامله سطح جداسازی و خواندن داده های غیرمتعهد از دیگران معاملات.
آیا میتوانیم از تراکنشهای تودرتو در SQL استفاده کنیم، اگر بله، چگونه؟
SQL سرور واقعاً پشتیبانی نمی کند معاملات تو در تو . فقط یکی هست معامله در یک زمان. این یکی معامله یک پایه دارد معامله تو در تو شمارنده، @@TRANCOUNT. هر متوالی شروع می شود معامله افزایش را شمارنده توسط یک، هر commit معامله یک عدد آن را کاهش می دهد.
توصیه شده:
آیا می توانیم از دستور DDL در رویه در اوراکل استفاده کنیم؟
عبارات DDL در رویه ها مجاز نیستند (PLSQL BLOCK) اشیاء PL/SQL از قبل کامپایل شده اند. از سوی دیگر، دستورات DDL (زبان تعریف داده ها) مانند دستورات CREATE، DROP، ALTER و دستورات DCL (زبان کنترل داده ها) مانند GRANT، REVOKE می توانند وابستگی ها را در طول اجرای برنامه تغییر دهند
رویه های ذخیره شده در کجا در SQL Server ذخیره می شوند؟
رویه ذخیره شده (sp) گروهی از درخواست های SQL است که در پایگاه داده ذخیره می شود. در SSMS، آنها را می توان دقیقاً در نزدیکی جداول یافت
آیا می توانیم آرایه را به رویه ذخیره شده در SQL Server منتقل کنیم؟
هیچ پشتیبانی از آرایه در سرور sql وجود ندارد اما راه های مختلفی وجود دارد که می توانید مجموعه را به یک proc ذخیره شده منتقل کنید
آیا می توانیم از DDL در روش ذخیره شده استفاده کنیم؟
شما می توانید فقط از عبارات DDL COMMENT در یک رویه ذخیره شده استفاده کنید. شما نمی توانید عبارات DML COMMENT را که محدود به برنامه های SQL جاسازی شده هستند، برای واکشی نظرات برای اشیاء پایگاه داده، ستون های جدول و پارامترها تعیین کنید
آیا می توانیم از تریگرها در رویه های ذخیره شده استفاده کنیم؟
Trigger: Trigger را می توان به طور خودکار در عملکرد مشخص شده روی جدول مانند، به روز رسانی، حذف یا به روز رسانی اجرا کرد. رویه ذخیره شده: رویه های ذخیره شده را نمی توان از یک تابع فراخوانی کرد زیرا توابع را می توان از یک دستور select فراخوانی کرد و رویه های ذخیره شده را نمی توان از آن فراخوانی کرد