المشاركات : 281
المواضيع 74
الإنتساب : Sep 2018
السمعة :
5
الشكر: 228
تم شكره 325 مرات في 179 مشاركات
السلام عليكم
لعلكم جميعا بخير ان شاء الله
عندي قاعدة بيانات سيكوال
واريد انه عند الضغط علي زر معين يقوم البرنامج بحذف كافة الجداول الموجوده في قاعدة البيانات مهما كان عددها
بمعني ان يجعل قاعدة البيانات فارغه من جميع الجداول
وبارك الله فيكم جميعا
المشاركات : 2,324
المواضيع 81
الإنتساب : May 2018
السمعة :
522
الشكر: 13917
تم شكره 5687 مرات في 2270 مشاركات
PHP كود :
use [TestTestD] declare @SQL nvarchar(max)='' declare @SQLV nvarchar(max)='' declare @SQLT nvarchar(max)='' SELECT @SQL = STUFF((SELECT ', ' + quotename(TABLE_SCHEMA) + '.' + quotename(TABLE_NAME) FROM INFORMATION_SCHEMA.TABLES WHERE Table_Name LIKE '%' FOR XML PATH('')),1,2,'') SET @SQLT = 'DROP TABLE ' + @SQL SET @SQLV = 'DROP View ' + @SQL PRINT @SQLT PRINT @SQLV EXECUTE (@SQLT) -- uncomment to actually delete the tables EXECUTE (@SQLV) -- uncomment to actually delete the View
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر
المشاركات : 281
المواضيع 74
الإنتساب : Sep 2018
السمعة :
5
الشكر: 228
تم شكره 325 مرات في 179 مشاركات
(10-04-20, 04:22 AM)asemshahen5 كتب : PHP كود :
use [TestTestD] declare @SQL nvarchar(max)='' declare @SQLV nvarchar(max)='' declare @SQLT nvarchar(max)='' SELECT @SQL = STUFF((SELECT ', ' + quotename(TABLE_SCHEMA) + '.' + quotename(TABLE_NAME) FROM INFORMATION_SCHEMA.TABLES WHERE Table_Name LIKE '%' FOR XML PATH('')),1,2,'') SET @SQLT = 'DROP TABLE ' + @SQL SET @SQLV = 'DROP View ' + @SQL PRINT @SQLT PRINT @SQLV EXECUTE (@SQLT) -- uncomment to actually delete the tables EXECUTE (@SQLV) -- uncomment to actually delete the View
الف شكر اخي عاصم جزاك الله عنا كل خير
طبقت الكود ونجح في انه حدف جميع الجداول ولكن ظهر الخطأ التالي
PHP كود :
DROP TABLE [dbo].[Table_1], [dbo].[Table_2], [dbo].[Table_3], [dbo].[Table_4], [dbo].[Table_5] DROP View [dbo].[Table_1], [dbo].[Table_2], [dbo].[Table_3], [dbo].[Table_4], [dbo].[Table_5] Msg 3701, Level 11, State 5, Line 1 Cannot drop the view 'dbo.Table_1', because it does not exist or you do not have permission. Msg 3701, Level 11, State 5, Line 1 Cannot drop the view 'dbo.Table_2', because it does not exist or you do not have permission. Msg 3701, Level 11, State 5, Line 1 Cannot drop the view 'dbo.Table_3', because it does not exist or you do not have permission. Msg 3701, Level 11, State 5, Line 1 Cannot drop the view 'dbo.Table_4', because it does not exist or you do not have permission. Msg 3701, Level 11, State 5, Line 1 Cannot drop the view 'dbo.Table_5', because it does not exist or you do not have permission.
المشاركات : 2,324
المواضيع 81
الإنتساب : May 2018
السمعة :
522
الشكر: 13917
تم شكره 5687 مرات في 2270 مشاركات
عدل الاستعلام الى :
PHP كود :
--EXECUTE (@SQLV) -- uncomment to actually delete the View
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر
المشاركات : 281
المواضيع 74
الإنتساب : Sep 2018
السمعة :
5
الشكر: 228
تم شكره 325 مرات في 179 مشاركات
(10-04-20, 05:31 AM)asemshahen5 كتب : عدل الاستعلام الى :
PHP كود :
--EXECUTE (@SQLV) -- uncomment to actually delete the View
ظهر لي خطأ اخر وهو
اعتزر علي ازعاجك اخي
PHP كود :
Msg 3705, Level 16, State 1, Line 1 Cannot use DROP TABLE with 'dbo.ReceiptQuery' because 'dbo.ReceiptQuery' is a view. Use DROP VIEW.
المشاركات : 7,397
المواضيع 802
الإنتساب : Sep 2013
السمعة :
853
الشكر: 13167
تم شكره 18826 مرات في 4421 مشاركات
هل تقصد جداول تخص قاعدة بياناتك؟
استخدم command للحذف ومرر له drop table tablename
ونفذ
كود من مثال عندي:
PHP كود :
Dim dop As New SqlCommand("DROP TABLE flvs,cpus,comments,lovers", con) dop.ExecuteNonQuery()
أكيد لا بد من فتح الاتصال
flvs,cpus,comments,lovers أسماااااء جداول
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
المشاركات : 281
المواضيع 74
الإنتساب : Sep 2018
السمعة :
5
الشكر: 228
تم شكره 325 مرات في 179 مشاركات
(10-04-20, 06:59 AM)سعود كتب : هل تقصد جداول تخص قاعدة بياناتك؟
استخدم command للحذف ومرر له drop table tablename
ونفذ
كود من مثال عندي:
PHP كود :
Dim dop As New SqlCommand("DROP TABLE flvs,cpus,comments,lovers", con) dop.ExecuteNonQuery()
أكيد لا بد من فتح الاتصال
flvs,cpus,comments,lovers أسماااااء جداول
أشكرك أخي سعودعلي مروركم الطيب
ولكن اري ان هده الطريقه صعبه شويه لو كان عدد الجداول كثيره
فمابالك لو كان هناك 100 جدول مثلا؟
المشاركات : 7,397
المواضيع 802
الإنتساب : Sep 2013
السمعة :
853
الشكر: 13167
تم شكره 18826 مرات في 4421 مشاركات
طيب لو تحذف قاعدة البيانات كلها مو اسهل اذا لم تجد طريقة!
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
المشاركات : 370
المواضيع 20
الإنتساب : May 2018
السمعة :
82
الشكر: 32
تم شكره 893 مرات في 353 مشاركات
يبدو انه يوجد عندك view مرتبطة بالجداول احذف ال views ثم احذف الجداول
المشاركات : 7,397
المواضيع 802
الإنتساب : Sep 2013
السمعة :
853
الشكر: 13167
تم شكره 18826 مرات في 4421 مشاركات
10-04-20, 04:10 PM
(آخر تعديل لهذه المشاركة : 10-04-20, 04:59 PM {2} بواسطة سعود.)
جربت كود ونجح معي ومسالة الامور الاخرى لا اعلم عنها واقصد ماتحدث به الاخوة لاني عملت جداول جديدة وحذفتها بالكود مرة واحدة
اولا ضع مربع نص لتضع به جملة الاتصال كاملة وليكن اسمها TextBox1
اكتب الدالة التالية:
PHP كود :
Function drop(str As String, tt As String) As String Using con As New SqlClient.SqlConnection(str) Using cm As New SqlClient.SqlCommand("", con) cm.CommandText = "DROP TABLE " & tt & "" If con.State = ConnectionState.Closed Then con.Open() Try cm.ExecuteNonQuery() Return "Droped... " & tt & " " Catch ex As Exception Return Err.Description End Try
If con.State = ConnectionState.Open Then con.Close() End Using End Using End Function
النقطة الاهم واللتي تبحث عنها على مااظن هي بالكود التالي:
PHP كود :
Using con As New SqlClient.SqlConnection(TextBox1.Text) 'SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES Using cm As New SqlClient.SqlCommand("", con) cm.CommandText = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES" If con.State = ConnectionState.Closed Then con.Open() Dim dr As SqlClient.SqlDataReader = cm.ExecuteReader Do While dr.Read MsgBox(drop(TextBox1.Text, dr(0).ToString)) Loop dr.Close() If con.State = ConnectionState.Open Then con.Close() End Using End Using
ارجو تعطيني خبر اذا هذه الاكواد عملت عندك.
تنبيه!
تحتاج تمرير هذه الجملة بكود الاتصال:
PHP كود :
MultipleActiveResultSets=True;
وهي لتمكين تعدد مهام القاريء(حسب تعبيري وفهمي)
بصراحة يوجد اشخاص بالمنتدى يشجعون على البذل والمساعدة وتقديم كل ماهو مفيد
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
|