انواع  خطا ها  (ERROR) در پایگاه  داده SQL

تیم تحریریه 1404/01/16 0 8
لینک کوتاه https://zoheirsoftware.com/z/024e1cf06 |
انواع  خطا ها  (ERROR) در پایگاه  داده SQL,()ERROR_MESSAGE - دریافت پیام خطا,()ERROR_SEVERITY - دریافت شدت خطا

انواع خطاها (ERROR) در پایگاه داده SQL

در SQL، خطاها می‌توانند به دسته‌های مختلفی تقسیم شوند.

یکی از رایج‌ترین انواع خطاها، خطاهای نحوی هستند که زمانی رخ می‌دهند که دستورات SQL به صورت اشتباه نوشته شوند.

این نوع خطاها شامل استفاده نادرست از دستورات SQL، ترکیب نادرست کلیدواژه‌ها و فرمت اشتباه داده‌ها می‌شود.

همچنین، خطاهای دسترسی زمانی رخ می‌دهند که کاربر سعی کند عملیاتی را انجام دهد که اجازه انجام آن را ندارد.

این نوع خطا معمولاً به دلیل کمبود مجوزهای لازم برای خواندن، نوشتن یا تغییر داده‌ها به وجود می‌آید.

علاوه بر این، خطاهای تراکنشی معمولاً در زمان بروز مشکلات در عملیات تراکنش‌ها رخ می‌دهند.

برای مثال، اگر تراکنش در میانه راه شکست بخورد، باید آن را بازگرداند تا داده‌ها دچار تناقض نشوند.

خطاهای منبع نیز زمانی ایجاد می‌شوند که منابع سیستم مانند حافظه یا فضای دیسک کافی نباشند تا عملیات اجرا شوند.

در نهایت، خطاهای اجرایی به هنگام پردازش دستورات SQL یا داده‌ها بروز می‌کنند، مثل زمانی که یک رکورد مورد نظر وجود نداشته باشد یا عملیات محاسباتی مانند تقسیم بر صفر انجام شود.

شناسایی و مدیریت این خطاها نقش حیاتی در پایداری و عملکرد بهینه پایگاه داده ایفا می‌کند.

انواع خطاها (ERROR) در پایگاه داده SQL

 

()ERROR_MESSAGE - دریافت پیام خطا

تابع ()ERROR_MESSAGE متن کامل خطایی که رخ داده است را برمی‌گرداند.

این پیام توضیحی در مورد مشکل ایجادشده ارائه می‌دهد.

مثال:

BEGIN TRY
    SELECT 1 / 0;
END TRY
BEGIN CATCH
    PRINT ERROR_MESSAGE();
END CATCH
خروجی: Divide by zero error encountered.

 

 

 

🌟 آیا می‌خواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟

با دوره آموزشی SQL Server ما، شما می‌توانید به راحتی و با روشی عملی، تمام مهارت‌های لازم را یاد بگیرید!

این دوره به شما آموزش می‌دهد که چگونه داده‌ها را به بهترین شکل مدیریت کنید، گزارش‌های قدرتمند بسازید و به تحلیل‌های عمیق دست یابید.

با محتوای جذاب و پروژه‌های واقعی، شما نه تنها تئوری را یاد می‌گیرید، بلکه توانایی‌های عملی خود را نیز تقویت می‌کنید.

پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشن‌تر بردارید!

 همین حالا شروع کنید و به دنیای داده‌ها بپیوندید!

 

 

()ERROR_NUMBER - دریافت شماره خطا

تابع ()ERROR_NUMBER شماره منحصربه‌فردی که به خطای ایجادشده در SQL Server اختصاص داده شده است را برمی‌گرداند.

مثال:

BEGIN TRY
    SELECT 1 / 0;
END TRY
BEGIN CATCH
    PRINT ERROR_NUMBER();
END CATCH
خروجی: 8134 (شماره خطای مربوط به تقسیم بر صفر)

 

 

()ERROR_SEVERITY - دریافت شدت خطا

 

()ERROR_LINE - دریافت شماره خطی که خطا در آن رخ داده است

تابع ()ERROR_LINE شماره خطی که در آن خطا ایجاد شده را برمی‌گرداند.

این تابع برای اشکال‌زدایی (Debugging) مفید است.

مثال:

BEGIN TRY
    SELECT 1 / 0;
END TRY
BEGIN CATCH
    PRINT 'خطا در خط شماره: ' + CAST(ERROR_LINE() AS NVARCHAR(10));
END CATCH

()ERROR_PROCEDURE - دریافت نام رویه‌ای که خطا در آن رخ داده است

تابع ()ERROR_PROCEDURE نام رویه ذخیره‌شده (Stored Procedure) یا تابع (Function) که خطا در آن رخ داده است را برمی‌گرداند.

اگر خطا خارج از رویه رخ دهد، مقدار NULL برمی‌گردد.

مثال:

CREATE PROCEDURE TestErrorProcedure
AS
BEGIN
    BEGIN TRY
        SELECT 1 / 0;
    END TRY
    BEGIN CATCH
        PRINT 'خطا در رویه: ' + ISNULL(ERROR_PROCEDURE(), 'NULL');
    END CATCH
END;

EXEC TestErrorProcedure;

خروجی: خطا در رویه: TestErrorProcedure

()ERROR_SEVERITY - دریافت شدت خطا

تابع ()ERROR_SEVERITY مقدار شدت (Severity) خطا را برمی‌گرداند که نشان می‌دهد خطا چقدر جدی است.

شدت خطاها به دسته‌های مختلفی تقسیم می‌شود:

  • 0 تا 10: اخطارهای جزئی
  • 11 تا 16: خطاهای کاربر
  • 17 تا 25: خطاهای سیستمی که ممکن است منجر به قطع اتصال شوند.

مثال:

BEGIN TRY
    SELECT 1 / 0;
END TRY
BEGIN CATCH
    PRINT 'شدت خطا: ' + CAST(ERROR_SEVERITY() AS NVARCHAR(10));
END CATCH

خروجی: شدت خطا: 16

 

()ERROR_SEVERITY - دریافت شدت خطا

()ERROR_STATE - دریافت وضعیت خطا

تابع ()ERROR_STATE مقدار وضعیت خطا را برمی‌گرداند که به شناسایی دقیق‌تر مشکل کمک می‌کند.

این مقدار ممکن است بسته به شرایط مختلف متفاوت باشد.

مثال:

BEGIN TRY
    SELECT 1 / 0;
END TRY
BEGIN CATCH
    PRINT 'وضعیت خطا: ' + CAST(ERROR_STATE() AS NVARCHAR(10));
END CATCH

خروجی: وضعیت خطا: 1

نتیجه‌گیری

شناخت انواع خطاها در SQL Server و استفاده از توابع داخلی برای مدیریت آنها، به توسعه‌دهندگان کمک می‌کند تا مشکلات پایگاه داده را بهتر تشخیص داده و برنامه‌هایی پایدارتر و قابل نگهداری‌تر ایجاد کنند.

با ترکیب TRY...CATCH و این توابع می‌توان سیستم‌های مدیریت خطا را بهینه‌سازی کرد و از تأثیر خطاها بر عملکرد کلی برنامه جلوگیری کرد.

 

دوره های مرتبط
آموزش Sql,آموزش sqlserver, آموزش جامع Sqlserver

آموزش پایگاه داده SqlServer

پایگاه داده Sqlserver یکی از پایگاه داده های مهم برای ذخیره اطلاعات محسوب میشود .

997,000 تومان

2.6k بازدید

ارسال دیدگاه

برای ارسال نظر لطفا ورود یا ثبت نام کنید.