لحذف قاعدة البيانات بأستخدام لغة SQL سوف نستخدم الايعاز DROP وهو من ايعازات Data Definition Language او ما يعرف اختصارا ب DDL
| DROP DATABASE databasename |
مثلا لحف قاعدة بيانات اسمها TEST يمكن كتابة وتنفيذ الايعاز التالي في SQL Server Management Studio
| DROP DATABASE TEST |
ملاحظة لنفيذ هذا الايعاز يجب ام تمتك الصلاحيات الامنية المناسبة يجب ان يكون المستخدم عضو في الدور الامني المسمى db_owner role.
يجب ان نكون حذرين جدا عند تنفيذ هذا الايعاز (DROP DATABASE) سوف يؤدي الى حذف قاعدة البيانات من نظام ادارة قواعد البيانات (SQL Server) وكذلك يؤدي الى حذف ملفات MDF و LDF من System file وبتالي لايمكن استرجاع قاعدة البيانات ما لم نمتلك ملفات النسخ الاحتياطي (Backup Files) لذلك يجب ان لا ننفذ هذا الايعاز مالم نتأكد من وجود ملفات النسخ الاحتياطي وكذلك يجب التأكد من صلاحية ملفات النسخ الاحتياطي عن طريق القيام بعملية (Restore) لهذه الملفات والتأكد من صلاحيتها.
هناك حالة خاصة وهي اذا كانت قاعدة البيانات ضمن الحالة (offline) فأن تنفيذ (DROP DATABASE) سوف يؤدي فقط الى حذف قاعدة البيانات من نظام ادارة قواعد البيانات (SQL Server) بينما تبقى ملفات MDF و LDF موجودة في System file لذلك في هذه الحالة يجب ان نقوم يدويا بأزلة هذه الملفات من System File.
اذا اردنا ازالة قاعدة بيانات من SQL Server بشكل مؤقت فهناك طرقة اكثر امانا وهي استخدام عملية (Detaches) اي فصل قاعدة البيانات حيث ان هذه العملية تؤدي فقط الى حذف قاعدة البيانات من نظام ادارة قواعد البيانات (SQL Server) ولكن تبقي ملفات ملفات MDF و LDF موجودة في System file وبتالي يمكن اضافة قاعدة البيانات مرة اخرى وبسهولة الى نظام ادارة قواعد البيانات (SQL Server). هناك بعض المتطلبات الخاصة بعملية (Detach) حيث يجب ان تكون قاعدة البيانات ضمن الحالة (SINGLE_USER) وهذا سوف يضمن عدم اتصال المستخدمين بقاعدة البيانات ويوفر ما يسمى بالوصول الحصري (exclusive access) والذي يمكننا من القيام بعملية الفصل (Detach) بشكل امن. ان الوصول الحصري (اي وضع قاعدة البيانات ضمن الحالة (SINGLE_USER)) سوف يؤدي الى قطع كل الاتصالات الموجودة (drop connections) بين المستخدمين الاخرين وقاعدة البيانات وهذا يضمن عدم حدوث اي عمليات تعيق عملية فصل قاعدة البيانات.
لتحويل قاعدة البيانات الى الحالة (SINGLE_USER) الايعازات التالية:
| USE master; ALTER DATABASE TEST SET SINGLE_USER; GO |
بعد تنفيذ الايعازات السابقة يمكن المباشرة بعملية فصل قاعدة البيانات عن طريق تنفيذ الاجراء المخزن (Stored Procedure) التالي :
| USE master; EXEC sp_detach_db 'TEST', 'true'; |
كذلك يمكن القيام بعملية فصل قاعدة البيانات عن طريق استخدام SQL Server Management Studio كما موضح في الصور التالية: نضغط بزر الفارة الايمن على اسم قاعدة البيانات ثم نختار Task ومنها نتختار Detach
فيظهر مربع الحوار Detach Database ونختار الخيار Drop Connections ثم نغط على الزر OK.
ليست هناك تعليقات:
إرسال تعليق