لحدف الجداول من قاعدة البيانات بأستخدام لغة SQL سوف نستخدم الايعاز DROP TABLE وهو من ايعازات Data Definition Language او ما يعرف اختصارا ب DDL
DROP TABLE table_name
مثلا لحذف جدول الزبائن CUSTOMER يمكن كتابة وتنفيذ الايعاز التالي في SQL Server Management Studio
DROP TABLE CUSTOMER
ملاحظة
- يجب ان نكون حذرين جدا عند حذف الجداول لان ايعاز DROP TABLE سوف يحذف الجدول وكل البيانات المخزنة في هذا الجدول. لذلك يجب اخذ الاحتياطات اللازمة مثلا اذا كان الجدول يحتوي على معلومات حساسة قد تحتاج اليها لاحقا يمكن حفظ نسخة من هذا الجدول ولكن بأسم ثاني بأستخدام عبارة SELECT INTO او الاحتفاظ بنسخة من ملفلت النسخ الاحتياطي لقاعدة البيانات (Backup Files) وبتالي نستطيع استرجاع المعلومات من النسخ الاحتياطي.
- لتنفيذ هذا الايعاز يجب ان تمتك الصلاحيات الامنية المناسبة يجب ان يكون المستخدم عضو في الدور الامني المسمى db_owner role.
النسخ الاحتياطي للجدول ضمن قاعدة البيانات
لاخذ النسخ الاحتياطي للجدول قبل القيام بحذفه يمكن تنفيذ الايعاز SELECT INTO كما يلي
SELECT * INTO CUSTOMER_BK_01DEC2017 FROM CUSTOMER
سوف يقوم الايعاز اعلاه بتكوين جدول جديد (CUSTOMER_BK_01DEC2017) يماثل بمواصفاته (من حيث عدد الاعمدة ونوع البيانات لكل عمود)الجدول (CUSTOMER) وكذلك ينسخ كل البيانات من الجدول (CUSTOMER) ويخزنها في الجدول الجديد (CUSTOMER_BK_01DEC2017).أن تنفيذ هذا الايعاز سوف يكون الجدول الجديد بنفس قاعدة البيانات الحالية.
اذا اردنا ان نأخذ النسخ الاحتياطي في قاعدة بيانات اخرى (مثلا قاعدة بيانات مخصصة للنسخ الاحتياطي اسمها مثلا BACKUP) يمكن تنفيذ الايعاز التالي
SELECT * INTO BACKUPDB.dbo.CUSTOMER_BK_01DEC2017 FROM CUSTOMER
في هذا الايعاز استخدمنا ما يعرف بالاسم الكامل للجدول الجديد الذي نريد ان نستخدمه كجدول احتياطي والاسم الكامل(BACKUPDB.dbo.CUSTOMER_BK_01DEC2017) مكون في هذه الحالة من ثلاثة اجزاء الجزء الاول يمثل اسم قاعد البيانات(BACKUPDB) الذي نريد تكوين الجدول فيها. والجزء الثاني يمثل مايعرف ب Schema او مالك هذ الكائن وهو في هذه (dbo) وهو الاسم الافتراضي لمالك قاعدة البيانات Database Owner والجز الاخير اسم الجدول الجديد (جدول النسخ الاحتياطي) (CUSTOMER_BK_01DEC2017).
للتحقق من ان عملية النسخ الاحتياطي تمت بنجاح نستطيع تنفيذ الايعاز التالي لمقارنة عدد السجلات في كلا الجدولين :
SELECT COUNT(*) FROM CUSTOMER SELECT COUNT(*)FROM BACKUPDB.dbo.CUSTOMER_BK_01DEC2017
للتحقق من ان عملية النسخ الاحتياطي تمت بنجاح نستطيع تنفيذ الايعاز التالي لمقارنة اول الف سجل من كلا الجدولين عن طريق التحقق من البيانات بصريا وبعد التأكد من ان الجدولين متطابقين يمكن تنفيذ ايعاز DROP TABLE
SELECT TOP 1000 * FROM CUSTOMER SELECT TOP 1000 * FROM BACKUPDB.dbo.CUSTOMER_BK_01DEC2017
ليست هناك تعليقات:
إرسال تعليق