Как из базы удалить все таблицы sql
Перейти к содержимому

Как из базы удалить все таблицы sql

  • автор:

Удаление таблиц (компонент Database Engine)

Вы можете удалить таблицу из базы данных в SQL Server с помощью SQL Server Management Studio или Transact-SQL.

Каждое удаление таблицы следует тщательно планировать. Если на таблицу ссылаются существующие запросы, представления, определяемые пользователем функции, хранимые процедуры или программы, то удаление сделает эти объекты недействительными.

В этом разделе

  • Перед началом работыОграниченияБезопасность
  • Удаление таблицы с помощью следующих средств:Среда SQL Server Management StudioTransact-SQL

Перед началом

Ограничения

  • Инструкцию DROP TABLE нельзя использовать для удаления таблицы, на которую ссылается ограничение FOREIGN KEY. Сначала следует удалить ссылающееся ограничение FOREIGN KEY или ссылающуюся таблицу. Если и ссылающаяся таблица, и таблица, содержащая первичный ключ, удаляются с помощью одной инструкции DROP TABLE, ссылающаяся таблица должна быть первой в списке.
  • При удалении таблицы относящиеся к ней правила и значения по умолчанию теряют привязку, а любые связанные с таблицей ограничения или триггеры автоматически удаляются. Если таблица будет создана заново, нужно будет заново привязать все правила и значения по умолчанию, заново создать триггеры и добавить необходимые ограничения.
  • При удалении таблицы, которая содержит столбец varbinary (max) с атрибутом FILESTREAM, не будут удалены никакие данные, которые хранятся в файловой системе.
  • Инструкции DROP TABLE и CREATE TABLE нельзя выполнять для одной таблицы в одном пакете. В противном случае может произойти непредвиденная ошибка.
  • Любые представления или хранимые процедуры, которые ссылаются на удаляемую таблицу, необходимо явно удалить или изменить, чтобы убрать ссылку на таблицу.

Безопасность

Разрешения

Необходимо разрешение ALTER на схему, к которой принадлежит эта таблица, разрешение CONTROL для этой таблицы или членство в предопределенной роли базы данных db_ddladmin .

Использование среды SQL Server Management Studio

Удаление таблицы из базы данных
  1. В обозревателе объектов выберите таблицу, которую необходимо удалить.
  2. Щелкните таблицу правой кнопкой мыши и в контекстном меню выберите Удалить .
  3. Появится окно подтверждения удаления. Нажмите кнопку Да.

Примечание При удалении таблицы автоматически удаляются все связи с ней.

Использование Transact-SQL

Удаление таблицы в редакторе запросов
  1. В обозревателе объектовподключитесь к экземпляру компонента Компонент Database Engine.
  2. На стандартной панели выберите пункт Создать запрос.
  3. Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.
DROP TABLE dbo.PurchaseOrderDetail; 

Дополнительные сведения см. в разделе DROP TABLE (Transact-SQL)

Руководство по SQL. Очистка таблицы.

Для полного удаления всех данных из таблицы, в языке SQL используется команда TRUNCATE TABLE. Конечно, мы можем использовать команду DROP TABLE, для удаления данных и создать такую же таблицу, но нам придётся создавать её повторно. В подобных случаях, команда TRUNCATE TABLE крайне облегчает нам работу.

Запрос с использованием команды TRUNCATE TABLE имеет следующий вид:

 TRUNCATE TABLE имя_таблицы; 

Предположим, что у нас есть таблицы developers_copy, которая содержит следующие записи:

 +----+-------------------+------------+------------+--------+ | ID | NAME | SPECIALTY | EXPERIENCE | SALARY | +----+-------------------+------------+------------+--------+ | 1 | Eugene Suleimanov | Java | 2 | 2000 | | 2 | Peter Romanenko | C++ | 3 | 3500 | | 3 | Andrei Komarov | JavaScript | 2 | 2100 | +----+-------------------+------------+------------+--------+ 

Допустим, нам необходимо удалить все записи из данной таблицы.
Для этого мы должны использовать следующую команду:

 mysql> TRUNCATE TABLE developers_copy; 

Теперь наша таблица developers_copy пуста:

 mysql> SELECT * FROM developers_copy; Empty set (0.00 sec) 

На этом мы заканчиваем изучение способа удаления всех данных из таблицы.
В следующей статье мы рассмотрим использование отображений в языке SQL.

SQL-Ex blog

Удалить все таблицы в SQL Server и сгенерировать список объектов на удаление

Добавил Sergey Moiseenko on Среда, 8 февраля. 2023

Проблема

Я создал 5 таблиц, 15 представлений и четыре хранимых процедуры в тестовой среде Microsoft SQL Server. Когда я завершил тестирование, то перенес все в рабочую среду. Теперь мне нужно удалить все объекты тестового SQL Server для подготовки следующего проекта.

Я знаю, что могу создать несколько скриптов SQL Server (DROP TABLE, DROP VIEW и DROP PROC), но необходимо ли делать это для каждого из 24 объектов. Как мне удалить все эти объекты более эффективно?

Решение

В этом руководстве мы обсудим простой вариант для удаления всех 24 объектов SQL Server с помощью всего лишь трех операторов SQL. Обычно приходится писать оператор DROP для каждого объекта; однако вы можете удалить все ваши таблицы в одном операторе SQL, все представления в другом операторе SQL и все ваши хранимые процедуры в еще одном.

DROP Table для всех таблиц в базе данных SQL Server

Решение простое — перечислите все таблицы в вашей базе данных, например, в одном операторе DROP, разделив их запятыми.

DROP TABLE table1, table2, table3, table4, table5;

В нашем сценарии мы создадим 5 таблиц, заполним их сгенерированными данными, а затем удалим все пять таблиц с помощью одной команды SQL.

Для простоты все пять таблиц будут идентичны за исключением имен. Сначала давайте создадим начальную таблицу и наполним ее данными.

CREATE TABLE Students1( 
colID INT
, name VARCHAR(20)
, subject VARCHAR(20)
);
GO
INSERT INTO Students1(name, subject)
VALUES ('Student1', 'Science')
, ('Student2', 'Science')
, ('Student3', 'History');
GO

Теперь создадим еще четыре таблицы, используя процесс «копирования таблицы».

SELECT * 
INTO Students2
FROM Students1;
GO
SELECT *
INTO Students3
FROM Students2;
GO
SELECT *
INTO Students4
FROM Students3;
GO
SELECT *
INTO Students5
FROM Students4;
GO

Вы можете удалить все эти таблицы сразу с помощью одного запроса SQL.

DROP TABLE 
Students1,
Students2,
Students3,
Students4,
Students5;
GO

Преимущества и недостатки

Как многое в SQL и в жизни, часто преимущества сопровождаются недостатками. Это также справедливо и для операторов массового удаления. Чтобы вы могли определить, в каком сценарии это даст выгоду, ниже приводится краткая сводка преимуществ и недостатков этой возможности.

Преимущества

  • Вариант массового удаления совместим со всеми версиями SQL Server, включая Azure.
  • Вы можете сэкономить время за счет сокращения кода.
  • Если один из объектов в списке не существует или не может быть удален из-за зависимостей, это не влияет на остальные объекты в операторе DROP. Все остальные объекты в списке будут удалены.

Вот скриншот наших таблиц, находящихся сейчас в тестовой базе данных. Если вы уже удалили их, повторите выполнение скриптов CREATE TABLE.

Теперь давайте выполним оператор массового удаления всех таблиц, но допустим ошибку в имени одной из таблиц, чтобы смоделировать отсутствующую таблицу или таблицу со связью. Изменим имя таблицы Students3 на Students33 и выполним скрипт.

DROP TABLE 
Students1,
Students2,
Students33,
Students4,
Students5;
GO

Вы должны получить похожее сообщение об ошибке:

Обратите внимание, что тут ничего не сказано о других таблицах, а только о Students33, которой не существует. Поэтому, когда мы обновим таблицы в браузере объектов, все таблицы кроме Students3 исчезнут.

Недостатки

  • Вы не можете использовать IF EXISTS в операторе массового удаления.
  • Вы не можете удалить одновременно объекты разных типов. Другими словами, вы должны удалить одной командой все таблицы, другой — все представления и т.д.

Нахождение имен объектов SQL

Итак, вы можете удалить все таблицы, представления, процедуры и т.д. с помощью одной команды. Нужно ли вам все еще печатать имена всех этих таблиц вручную? Как бы сэкономить время, особенно если некоторые объекты имеют длинные имена?

Давайте проясним этот вопрос, используя созданные ранее тестовые таблицы. Мы можем использовать некоторые инструменты, встроенные в SQL Server Management Studio (SSMS): 1) «sys.objects» и 2) возможность вернуть результаты запроса в виде текстового файла.

Сначала мы создадим скрипт SQL для перечисления имен наших таблиц. Вы можете так же перечислить ваши представления, хранимые процедуры и т.д., используя «sys.objects».

SELECT * 
FROM sys.objects;
GO

Результаты (неполный список):

Однако нам обычно не требуется так много информации, но полезно выполнить этот скрипт, чтобы ознакомиться с возвращаемыми значениями. Вы можете ограничить результаты, чтобы вернуть только имя и тип объектов в базе данных, таким образом:

select name + ', ', TYPE 
from sys.objects

Теперь продолжим чистку, чтобы убрать все системные объекты.

select name + ', ', TYPE 
from sys.objects
where type_desc != 'SYSTEM_TABLE'
AND type != 'IT'
AND type != 'SQ'

  • U означает TABLE (таблица),
  • V означает VIEW (представление),
  • P означает PROCEDURE (процедура), например, хранимую процедуру.
select name + ', ' 
from sys.objects
where type = 'U'
AND create_date >= '2022-09-28';
GO

Теперь вы можете скопировать и вставить результаты в вашу команду DROP TABLE.

Обратные ссылки

Нет обратных ссылок

Комментарии

Показывать комментарии Как список | Древовидной структурой

Автор не разрешил комментировать эту запись

3 способа удалениях всех таблицы в базе данных MySQL, MariaDB

Часто возникает вопрос, как удалить все таблицы в базе данных MySQL, MariaDB. Ниже рассмотрим несколько вариантов.

В общем случае удалить таблицы из базы данных можно командой в консоли mysql:

mysql> USE databasename; mysql> DROP table00 table01, table02;

Если у вас таблиц десятки и сотни, очевидно, что вручную их указывать неудобно. Ниже рассмотрим несколько вариантов удаления.

1 способ

Просто удаляем базу данных. Пользователя удаляемой базы данных создавать заново не надо, все его права сохранятся. И потом импортируем как обычно.

mysql -u root -p SHOW DATABASES; DROP DATABASE [IF EXISTS] database_name;

2 способ

В SQL запросе ниже замените testdb на имя базы данных, которую вы хотите удалить. Будет сгенерирован пакет операторов SQL, вам нужно снова запустить набор результатов, которые удалят все таблицы без удаления базы данных.

SELECT concat('DROP TABLE IF EXISTS ', TABLE_NAME, ';') FROM information_schema.tables WHERE table_schema = 'testdb';

В консоли вы получите такой набор команд:

+----------------------------------------------------+ | concat('DROP TABLE IF EXISTS ', TABLE_NAME, ';') | +----------------------------------------------------+ | DROP TABLE IF EXISTS cm_options; | | DROP TABLE IF EXISTS cm_usermeta; | | DROP TABLE IF EXISTS cm_users; | | DROP TABLE IF EXISTS cm_term_taxonomy; | | DROP TABLE IF EXISTS cm_termmeta; | | DROP TABLE IF EXISTS cm_commentmeta; | +----------------------------------------------------+

3 способ

Выше 2 способа позволяли удалять таблицы из консоли mysql, но если у вас установлен phpmyadmin, тогда проще удалить через него.

Инглекс (Englex) — онлайн школа английского языка.

11 Самых Популярных Статей

  1. ulimit (limits.conf) управление ограничениями ресурсов ОС Linux
  2. 7 способов сравнения файлов по содержимому в Windows или Linux
  3. Что такое страны tier 1,2,3 и как правильно выбрать ГЕО для рекламной кампании
  4. Настройка, использование GitLab CI/CD
  5. Что означает «> /dev/null 2>&1» или перенаправление STDIN, STDOUT и STDERR?
  6. Настройка и использование сервера OpenVPN в Linux
  7. PostgreSQL: создать БД, пользователя, таблицу, установить права
  8. Виды кодировок символов
  9. Использование rsync в примерах
  10. my.cnf примеры конфигурации MySQL, MariaDB
  11. dig проверка DNS сервера

11 Самых Популярных Обзоров

  1. ТОП 4 лучших антидетект браузеров в 2023 (Бесплатные & Платные)
  2. Обзор и отзывы о Namecheap в 2023 году
  3. Хостинг Zomro (Зомро)
  4. Обзор браузера Dolphin
  5. ТОП 3 Проверенных VPN, Прокси, Хостинг VPS Турция в 2023
  6. Что такое абузоустойчивый хостинг (bulletproof)?
  7. Обзор и отзывы о 4VPS (FourServer) в 2023 году
  8. Обзор и отзывы AstroProxy в 2023 году
  9. Обзор и отзывы о PQ Hosting в 2023 году
  10. Обзор и отзывы о Hostinger в 2023 году: преимущества и недостатки
  11. Проверенные VPS / VDS хостинг провайдеры

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *