ably ably برای هدایت شدن به سایت جدید اینجا کلیک کنید

آموزش برنامه نویسی

آموزش برنامه نویسی وب، اندروید، ویندوز , اسکیوال و...
Tell: 0912 097 5516
| Email: Hello@EduOnline.ir

آموزش SQL Transaction

بسم الله الرحمن الرحیم

آموزش SQL Transaction

در این بخش قصد دارم مدیریت تراکنش های اسکیوال را به صورت مختصر توضیح دهم

توسط متغییر Global، @@Error می توانیم شماره خطا را بازیابی نماییم اگر خطایی داشته باشیم مقدار این متغییر از صفر بزرگتر است در غیر این صورت مقدار آن صفر است و در صورتی که از این متغییر استفاده کنیم مجددا مقدار این متغییر صفر می گردد

همچنین جهت خواندن شماره خطا می توانیم از Error_Number() استفاده کنیم و جهت چاپ متن خطا از Error_Message استفاده می کنیم

جهت ایجاد یک خطا به صورت دستی می توانیم از RAISERROR استفاده کنیم

مثال


    RAISERROR('خطایی رخ داده است',16,1)

به دلیل وجود کاراکترهای فارسی و انگلیسی جای متن خطا از ابتدا به انتها منتقل شده به همین دلیل تصویری در انتهای مطلب قراردادم که گویا ی موضوع باشد

عدد 16 محدوده خطا را مشخص می کند بهتر است همیشه از این عدد استفاده کند چون این عدد خطای ایجاد شده را به برنامه ی شما (مثلا سی شارپ) نیز ارسال می کند.

کاربرد این دستور برای مواردی است که شما می خواهید در صورت برقرار نشدن یک شرط دستورات خاتمه یابد مثلا برای جلوگیری از درج یک رکورد جدید در جدول کاربران با نام کاربری که قبلا ثبت شده است.

در مواردی که شما می خواهید در یک تراکنش تنها بخشی را خاتمه دهید ولی تراکنش همچنان ادامه داشته باشد کافی است که شما از دستور Save Point استفاده نمایید

مثال


BEGIN TRAN PARRNT
            INSERT INTO USERS(userName,[password]) VALUES ('A','A')
            PRINT 'INSERTED A'
                              BEGIN TRY
                                          SAVE TRAN INSERT_PART  
                                       RAISERROR ('خطایی رخ داده است',16,1)
                                                INSERT INTO USERS(userName,[password]) VALUES ('B','B')   
                                            PRINT 'INSERTED B'
                              END TRY
                              BEGIN CATCH
                                          ROLLBACK TRAN INSERT_PART
                              END CATCH
            INSERT INTO USERS(userName,[password]) VALUES ('C','C')
            PRINT 'INSERTED C'
COMMIT TRAN PARENT

 

SavePoint

نظرات (۰)

هيچ نظري هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی
up
ما را در گوگل محبوب کنید