سؤال

لدي مغلفة النسخ الاحتياطي قاعدة بيانات الأوامر في محاولة/الصيد و يبدو أن رسالة الخطأ التي فقدت في مكان ما.على سبيل المثال:

BACKUP DATABASE NonExistantDB TO DISK = 'C:\TEMP\NonExistantDB.bak'

..يعطي خطأ:
لا يمكن تحديد موقع إدخال في sysdatabases لقاعدة البيانات 'NonExistantDB'.لا دخول وجدت مع هذا الاسم.تأكد من أن اسم يتم إدخالها بشكل صحيح.قاعدة بيانات النسخ الاحتياطي هو إنهاء بشكل غير طبيعي.

في حين أن:

BEGIN TRY
    BACKUP DATABASE NonExistantDB TO DISK = 'C:\TEMP\NonExistantDB.bak'
END TRY
BEGIN CATCH
    PRINT ERROR_MESSAGE()
END CATCH

...فقط يعطي خطأ: قاعدة بيانات النسخ الاحتياطي هو إنهاء بشكل غير طبيعي.

هل هناك طريقة للحصول على رسالة الخطأ بالكامل أو يتم هذا الحصر من حاول/الصيد ؟

هل كانت مفيدة؟

المحلول

انها الحد من حاول/catch.

اذا نظرتم بعناية في الخطأ الناتجة عن تنفيذ

 BACKUP DATABASE NonExistantDB TO DISK = 'C:\TEMP\NonExistantDB.bak'

ستجد أن هناك نوعان من الأخطاء التي القيت.الأول هو msg 911 ، التي تنص على

لا يمكن تحديد موقع إدخال في sysdatabases لقاعدة البيانات 'NonExistantDB'.ممنوع الدخول وجدت مع هذا الاسم.تأكد من أن اسم يتم إدخالها بشكل صحيح.

والثاني هو 3013 الرسالة التي هي عرض.في الأساس, SQL هو فقط العودة الخطأ الأخير.

نصائح أخرى

وهو الحد الذي صادفته في نفسي من حاول/catch في SQL server 2005.أنا لا أعرف إذا كان لا يزال موجودا أم لا في عام 2008.

SQL 2005 معالجة الخطأ

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top