منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
سؤال في حذف جداول قاعدة البيانات - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : سؤال في حذف جداول قاعدة البيانات (/showthread.php?tid=34254)

الصفحات: 1 2


سؤال في حذف جداول قاعدة البيانات - Emam emam - 10-04-20

السلام عليكم

لعلكم جميعا بخير ان شاء الله

عندي قاعدة بيانات سيكوال

واريد انه عند الضغط علي زر معين يقوم البرنامج بحذف كافة الجداول الموجوده في قاعدة البيانات مهما كان عددها

بمعني ان يجعل قاعدة البيانات فارغه من جميع الجداول 

وبارك الله فيكم جميعا



RE: سؤال في حذف جداول قاعدة البيانات - asemshahen5 - 10-04-20

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 



RE: سؤال في حذف جداول قاعدة البيانات - Emam emam - 10-04-20

(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 3701Level 11State 5Line 1
Cannot drop the view 
'dbo.Table_1'because it does not exist or you do not have permission.
Msg 3701Level 11State 5Line 1
Cannot drop the view 
'dbo.Table_2'because it does not exist or you do not have permission.
Msg 3701Level 11State 5Line 1
Cannot drop the view 
'dbo.Table_3'because it does not exist or you do not have permission.
Msg 3701Level 11State 5Line 1
Cannot drop the view 
'dbo.Table_4'because it does not exist or you do not have permission.
Msg 3701Level 11State 5Line 1
Cannot drop the view 
'dbo.Table_5'because it does not exist or you do not have permission



RE: سؤال في حذف جداول قاعدة البيانات - asemshahen5 - 10-04-20

عدل الاستعلام الى :

PHP كود :
--EXECUTE (@SQLV) -- uncomment to actually delete the View 



RE: سؤال في حذف جداول قاعدة البيانات - Emam emam - 10-04-20

(10-04-20, 05:31 AM)asemshahen5 كتب : عدل الاستعلام الى :

PHP كود :
--EXECUTE (@SQLV) -- uncomment to actually delete the View 

ظهر لي خطأ اخر وهو
اعتزر علي ازعاجك اخي

PHP كود :
Msg 3705Level 16State 1Line 1
Cannot 
use DROP TABLE with 'dbo.ReceiptQuery' because 'dbo.ReceiptQuery' is a view. Use DROP VIEW



RE: سؤال في حذف جداول قاعدة البيانات - سعود - 10-04-20

هل تقصد جداول تخص قاعدة بياناتك؟
استخدم command للحذف ومرر له drop table tablename
ونفذ

كود من مثال عندي:
PHP كود :
Dim dop As New SqlCommand("DROP TABLE flvs,cpus,comments,lovers"con)
 
dop.ExecuteNonQuery() 
أكيد لا بد من فتح الاتصال
flvs,cpus,comments,lovers أسماااااء جداول


RE: سؤال في حذف جداول قاعدة البيانات - Emam emam - 10-04-20

(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 جدول مثلا؟



RE: سؤال في حذف جداول قاعدة البيانات - سعود - 10-04-20

طيب لو تحذف قاعدة البيانات كلها مو اسهل اذا لم تجد طريقة!


RE: سؤال في حذف جداول قاعدة البيانات - aljzazy - 10-04-20

يبدو انه يوجد عندك view مرتبطة بالجداول احذف ال views ثم احذف الجداول


RE: سؤال في حذف جداول قاعدة البيانات - سعود - 10-04-20

جربت كود ونجح معي ومسالة الامور الاخرى لا اعلم عنها واقصد ماتحدث به الاخوة لاني عملت جداول جديدة وحذفتها بالكود مرة واحدة

اولا ضع مربع نص لتضع به جملة الاتصال كاملة وليكن اسمها TextBox1
اكتب الدالة التالية:
PHP كود :
 Function drop(str As Stringtt 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
وهي لتمكين تعدد مهام القاريء(حسب تعبيري وفهمي)

[مشروع] [ليس جديد - بل تجديد Tables Droper]

بصراحة يوجد اشخاص بالمنتدى يشجعون على البذل والمساعدة وتقديم كل ماهو مفيد