মাইএসকিএলে এক শটে একাধিক সারণী ফেলে দিন


102

এক কমান্ডে একটি একক ডাটাবেস থেকে একাধিক টেবিল কীভাবে ড্রপ করা যায়। কিছুটা এইরকম,

> use test; 
> drop table a,b,c;

যেখানে a, b, c হল ডাটাবেস পরীক্ষার সারণী।


17
আপনি ইতিমধ্যে নিজেকে উত্তর দিন
আজ্রিয়াল

নীচের উত্তর অনুসারে, হেইডিএসকিউএলে আপনি তাদের নাম (উপরের পাঠ্যবাক্স) দ্বারা টেবিলগুলি ফিল্টার করতে পারেন, DROP TABLE একটি ক্যোয়ারীতে লিখতে পারেন এবং প্রতিটি কাঙ্ক্ষিত টেবিলটিতে ডাবল ক্লিক করে এর নামটি ক্যোয়ারিতে যুক্ত করতে পারেন (তাদের মধ্যে একটি কমা রেখে) তারপরে কার্যকর করতে F9 চাপুন। কিছুটা অফ-টপিক তবে আমি তার জন্য এখানে এসেছি।
ইভান ফেরের ভিলা

একই প্রেফিক্স সহ বিভিন্ন টেবিল ড্রপ যেহেতু অনুপস্থিত মানুষের জন্য DROP TABLE table_prefix_*: স্টার অক্ষর দিয়ে কাজ করে না stackoverflow.com/questions/6758652/...
baptx

উত্তর:


135

উদাহরণ:

আসুন ধরা যাক টেবিল এ এর ​​দুটি বাচ্চা বি এবং সি রয়েছে তারপরে আমরা সমস্ত টেবিলগুলি ড্রপ করতে নীচের বাক্য গঠনটি ব্যবহার করতে পারি।

DROP TABLE IF EXISTS B,C,A;

এটিকে প্রতিটি টেবিল স্বতন্ত্রভাবে বাদ দেওয়ার পরিবর্তে স্ক্রিপ্টের শুরুতে স্থাপন করা যেতে পারে।


29
হতে পারে এটি উল্লেখ করা মূল্যবান যে টেবিলগুলির মোটেই কোনও সম্পর্ক থাকার দরকার নেই। তারা সম্পূর্ণ স্বাধীন হতে পারে এবং এই বাক্য গঠনটি এখনও কাজ করবে।
ক্রম্পিকো

76
SET foreign_key_checks = 0;
DROP TABLE IF EXISTS a,b,c;
SET foreign_key_checks = 1;

তারপরে এগুলিকে সঠিক ক্রমে ফেলে দেওয়ার বিষয়ে আপনার চিন্তা করার দরকার নেই বা সেগুলি আসলে বিদ্যমান কিনা।

এনবি এটি কেবল মাইএসকিউএল এর জন্য (প্রশ্ন হিসাবে)। অন্যান্য ডাটাবেসে সম্ভবত এটি করার বিভিন্ন পদ্ধতি রয়েছে।


3
আপনি fkey চেক (y) চালু করে আমাকে প্রচুর ঝামেলা থেকে রক্ষা করেছেন।
হাংরিকডার

0

মুছে ফেলার মতো প্রচুর টেবিল থাকলে এটি করার একটি অলস উপায়।

  1. নীচে ব্যবহার করে টেবিল পান

    • SQL সার্ভারের জন্য - কনট্যাট নির্বাচন করুন (নাম, ',') সারণি নাম SYS.tables থেকে;
    • ওরালিসের জন্য - নির্বাচন করুন কনক্যাট (TABLE_NAME, ',') SYS.ALL_TABLES থেকে;
  2. ফলাফল সেট থেকে টেবিলের নামগুলি অনুলিপি করে পেস্ট করুন এবং এটি DROP কমান্ডের পরে পেস্ট করুন।


-3
declare @sql1 nvarchar(max) 
SELECT @sql1 =
  STUFF(
         (
           select ' drop table dbo.[' + name + ']'

           FROM sys.sysobjects AS sobjects
           WHERE (xtype = 'U') AND (name LIKE 'GROUP_BASE_NEW_WORK_%')
           for xml path('')
        ),
     1, 1, '')

  execute sp_executesql @sql1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.