Microsoft SQL सर्वर प्रबंधन स्टूडियो 2008 कई उपयोगकर्ता तालिकाओं को हटा रहा है


12

क्या डेटाबेस को गिराने और इसे पुनः बनाए बिना डेटाबेस में कई तालिकाओं को हटाने का एक आसान तरीका है? इस मामले में हमारे पास हटाने के लिए 100 से अधिक हैं।

मैं सभी उपयोगकर्ता तालिकाओं को हटाने और आवश्यक डेटा को पुनः प्राप्त करने के लिए पर्याप्त खुश हूं लेकिन डेटाबेस सुरक्षा सेटिंग्स में से किसी को भी नहीं छू सकता।

जवाबों:


26

ऑब्जेक्ट एक्सप्लोरर में, उस डेटाबेस पर नेविगेट करें जिसमें आप रुचि रखते हैं। इसे विस्तृत करें और टेबल्स फ़ोल्डर पर क्लिक करें। ऑब्जेक्ट एक्सप्लोरर विवरण लाने के लिए F7 मारो। उन तालिकाओं का चयन करें जिन्हें आप हटाना चाहते हैं और डिलीट की दबाएं।


क्या अड़चन है?
साइमन

2

किसी भी कारण से इसे सीधे टी-एसक्यूएल (साथ DROP TABLE) में नहीं करना चाहिए ? फिर यह उपयुक्त एसक्यूएल स्क्रिप्ट बनाने का मामला है (यदि आप इसे हटाने के लिए आवश्यक तालिकाओं की एक सूची प्राप्त कर चुके हैं और आप दूर हैं, तो संभवतः इसे ऑटोजेनरिंग कर सकते हैं)।


0

सुझाव के रूप में Tsql जवाब। मुझे tsql में काम करने के लिए ड्रॉप टेबल नहीं मिला, लेकिन इसने यह काम किया।

declare @TABLE varchar(250)

declare select_cursor cursor for
select name from sysobjects where type='U'

open select_cursor

fetch next from select_cursor
into @TABLE

while @@FETCH_STATUS = 0
begin
    print 'DROP TABLE '+@TABLE

    fetch next from select_cursor
    into @TABLE
end

close select_cursor
deallocate select_cursor

यह मान लिया गया है कि कोई मुख्य कुंजी बाधा नहीं है।
। ब्रायन केली

आप निर्भरता को क्रॉल कर सकते हैं और थोड़ा और प्रयास करके तालिकाओं को गिरा सकते हैं। <a href= stackoverflow.com/questions/352176/…> पर स्टैकओवरफ़्लो पोस्टिंग के पास ऐसा करने के लिए कुछ समाधान हैं।
कंसर्नडऑफटुनब्रिजवल्स

0

आप उनके माध्यम से पुनरावृति करके और इसे निष्पादित करके कई सारणियाँ छोड़ सकते हैं:

EXEC sp_MSforeachtable @command1 = "DROP TABLE ?"

हालाँकि, यदि आप किसी ऐसी तालिका को छोड़ने का प्रयास करते हैं जिसे एक विदेशी कुंजी द्वारा संदर्भित किया जा रहा है, तो आपको एक त्रुटि मिलेगी

Msg 3726, Level 16, State 1, Line 1
Could not drop object 'dbo.Table1' because it is referenced by a FOREIGN KEY constraint.

यदि आप इसे मैन्युअल रूप से करना चाहते हैं तो बस स्टेटमेंट को कुछ समय के लिए दोहराएं जब तक कि टेबल को संदर्भ से बाहर न कर दिया जाए (जैसे कि टेबल 2 में टेबल 1 का संदर्भ है, तो पहले रन में टेबल 1 को नहीं छोड़ा जा सकता है जबकि टेबल 2 को गिरा दिया जाता है, और दूसरे स्थान पर चलाएँ तालिका 1 को तब गिराया जा सकता है क्योंकि तालिका 2 अधिक नहीं है)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.