DROP DATABASE (Transact-SQL)
Удаляет одну или несколько пользовательских баз данных или моментальных снимков базы данных из экземпляра SQL Server.
Синтаксис
-- SQL Server Syntax DROP DATABASE [ IF EXISTS ] < database_name | database_snapshot_name >[ . n ] [;]
-- Azure SQL Database, Azure Synapse Analytics and Analytics Platform System Syntax DROP DATABASE database_name [;]
Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.
Аргументы
IF EXISTS
Применимо к: SQL Server (SQL Server 2016 (13.x) до текущей версии.
Условное удаление базы данных только в том случае, если она уже существует.
database_name — задает имя удаляемой базы данных. Для просмотра списка баз данных используйте представление каталога sys.databases.
database_snapshot_name применимо к SQL Server 2008 (10.0.x) и более поздним версиям.
Задает имя удаляемого моментального снимка базы данных.
Общие замечания
База данных может быть удалена независимо от ее состояния: вне сети, только для чтения, подозрительная и так далее. Для просмотра текущего состояния базы данных используйте представление каталога sys.databases.
Удаленная база данных может быть повторно создана только с помощью восстановления из резервной копии. Резервное копирование моментальных снимков базы данных произвести невозможно, поэтому они не могут быть восстановлены.
При удалении базы данных необходимо выполнить резервное копирование базы данных master.
Удаление базы данных удаляет базу данных из экземпляра SQL Server и удаляет файлы физического диска, используемые базой данных. Если база данных или один из ее файлов во время удаления находится в режиме вне сети, файлы с диска не удаляются. Эти файлы можно удалить вручную при помощи обозревателя Windows. Для удаления базы данных с текущего сервера без удаления файлов из файловой системы используйте процедуру sp_detach_db.
Удаление файла базы данных, имеющего связанные с ним резервные копии FILE_SNAPSHOT, выполнится успешно, однако файлы базы данных, с которыми связаны моментальные снимки, не будут удалены во избежание объявления недействительными резервных копий, ссылающихся на файл базы данных. Файл усекается, но физически не удаляется, чтобы сохранить резервные копии FILE_SNAPSHOT без изменений. Дополнительные сведения см. в статье sql Server Backup and Restore with Microsoft Хранилище BLOB-объектов Azure. Применимо к: SQL Server 2016 (13.x) до текущей версии.
SQL Server
Удаление моментального снимка базы данных удаляет моментальный снимок базы данных из экземпляра SQL Server и удаляет разреженные файлы файловой системы NTFS, используемые моментальным снимком. Сведения об использовании разреженных файлов для моментальных снимков баз данных см. в статье Моментальные снимки базы данных. Удаление моментального снимка базы данных очищает кэш планов для экземпляра SQL Server. Очистка кэша планов становится причиной перекомпиляции всех последующих планов выполнения и приводит к непредвиденному временному снижению производительности обработки запросов. Для каждого очищаемого хранилища кэша в кэше планов журнал ошибок SQL Server содержит следующее информационное сообщение: «SQL Server обнаружил %d вхождения кэша для кэша «%s» кэша (часть кэша планов) из-за некоторых операций обслуживания базы данных или перенастройки». Это сообщение добавляется в журнал каждые пять минут при сбросе кэша в течение этого интервала времени.
Совместимость
SQL Server
Чтобы удалить базу данных, опубликованную для репликации транзакций либо опубликованную или подписанную на репликацию слиянием, вначале необходимо удалить репликацию из базы данных. Если база данных повреждена или репликация не может быть удалена, скорее всего, базу данных все равно можно будет удалить, использовав инструкцию ALTER DATABASE для перевода базы данных в режим вне сети, после чего удалить ее.
Если база данных участвует в доставке журнала, отмените доставку журнала перед удалением базы данных. Дополнительные сведения см. в разделе Сведения о доставке журналов.
Ограничения
Инструкция DROP DATABASE должна выполняться в режиме автоматической фиксации и не разрешена в явной или неявной транзакции. Режим автоматической фиксации — это режим управления транзакцией по умолчанию.
Удалить базу данных, которая используется в текущий момент времени, невозможно. Это означает, что существуют блокировки на чтение или запись любым пользователем. Одним из способов отключить пользователей от базы данных является использование инструкции ALTER DATABASE для перевода базы данных в режим SINGLE_USER. В этой стратегии следует выполнять инструкции ALTER DATABASE и DROP DATABASE в одном и том же пакете, чтобы избежать появления другого подключения, занимающего один разрешенный пользовательский сеанс. См. пример Г ниже.
SQL Server
Любые моментальные снимки базы данных должны быть удалены перед удалением базы данных.
При удалении базы данных, настроенной в качестве базы Stretch Database, не удаляются удаленные данные. В таком случае удаленные данные следует удалять вручную.
Stretch Database устарел в SQL Server 2022 (16.x) и База данных SQL Azure. Эта функция будет удалена в будущей версии ядро СУБД. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.
База данных SQL Azure
Для удаления базы данных необходимо соединение с базой данных master.
Инструкция DROP DATABASE должна быть единственной инструкцией в пакете SQL, и ее можно удалить только одновременно с базой данных.
Azure Synapse Analytics
Для удаления базы данных необходимо соединение с базой данных master.
Инструкция DROP DATABASE должна быть единственной инструкцией в пакете SQL, и ее можно удалить только одновременно с базой данных.
Разрешения
SQL Server
Требуется разрешение CONTROL в базе данных, разрешение ALTER ANY DATABASE или членство в предопределенной роли базы данных db_owner.
База данных SQL Azure
Удалить базу данных могут только пользователи с именем входа субъекта серверного уровня (созданного процессом подготовки) или члены роли dbmanager базы данных.
Система платформы аналитики (PDW)
Требуется разрешение CONTROL в базе данных, разрешение ALTER ANY DATABASE или членство в предопределенной роли базы данных db_owner.
Примеры
А. Удаление одиночной базы данных
В следующем примере удаляется база данных Sales .
DROP DATABASE Sales;
B. Удаление нескольких баз данных
Применимо: SQL Server 2008 (10.0.x) и более поздних версий.
В следующем примере удаляется каждая из перечисленных баз данных.
DROP DATABASE Sales, NewSales;
C. Удаление моментального снимка базы данных
Применимо: SQL Server 2008 (10.0.x) и более поздних версий.
В следующем примере из базы данных удаляется моментальный снимок с именем sales_snapshot0600 без влияния на базу данных-источник.
DROP DATABASE sales_snapshot0600;
D. Удаление базы данных после проверки ее существования
В следующем примере сначала проверяется, существует ли база данных с именем Sales . Если да, пример переводит базу данных с именем Sales в однопользовательский режим, чтобы применить принудительное отключение всех остальных сеансов, а затем удаляет базу данных. Дополнительные сведения о режиме SINGLE_USER см. в описании параметров ALTER DATABASE SET.
USE tempdb; GO DECLARE @SQL nvarchar(1000); IF EXISTS (SELECT 1 FROM sys.databases WHERE [name] = N'Sales') BEGIN SET @SQL = N'USE [Sales]; ALTER DATABASE Sales SET SINGLE_USER WITH ROLLBACK IMMEDIATE; USE [tempdb]; DROP DATABASE Sales;'; EXEC (@SQL); END;
См. также
- ALTER DATABASE
- CREATE DATABASE
- EVENTDATA
- sys.databases
Обратная связь
Были ли сведения на этой странице полезными?
Как урезать / очистить базу данных 1С средствами MS-SQL
Эта статья для тех, кто хоть раз сталкивался с необходимостью очистить базу 1С , за период с устаревшими данными. Речь пойдет об удалении данных в ненужном периоде напрямую, средствами SQL -сервера. Также следует уточнить, что речь идет о конфигурациях, использующих компоненту «Оперативный учет». На бухгалтерских и расчетных базах данный метод не тестировался.
Для начала рассмотрим, как происходит резка периода. На определенную дату, чаще всего не конец года, скажем « 31.12.2003 », вычисляются конечные остатки по всем регистрам. Далее, на начало года, на « 01.01.2004 », вводятся эти остатки документами ввода начальных остатков. При этом в новом году в документах не должно быть ссылок на документы прошлого года – так называемых документов, введенных на основании, иначе удаление средствами 1С не сможет удалить документы, на которые есть ссылки. Также следует уделить внимания периодическим реквизитам, введенных документами, так как в момент отмены проведения документа эти периодические реквизиты перестанут существовать. Чтобы не было казусов, все периодические реквизиты, устанавливаемые документами нужно перед удалением выставить заново с начала года.
Теперь рассмотрим, как обычно происходит очистка базы средствами 1С . Запускается какая-то обработка проведения, которая помечает на удаление все документы. Это достаточно длительный процесс, так как при проведении каждого из документов 1С :Предприятие очищает все движения документов, в том числе периодические реквизиты, введенные документом. Это достаточно длительный процесс с учетом большого количества документов. Далее через пункт меню «Операции -> Удаление помеченных объектов» выполняется окончательное удаление.
В совокупности – это достаточно длительный процесс, особенно для больших баз с большим количеством документов в удаляемом периоде.
Альтернативный вариант очистки базы 1С – воспользоваться имеющимися в нашем распоряжении средствами MS-SQL . Из вышеуказанной последовательности мы можем ускорить последние два пункта, а именно пометку на удаление и окончательное удаление документов.
Что требуется сделать? Просто запустить скрипт, например из SQL Query Analizer ’а. Текст скрипта представлен ниже:
USE MyTestBase
Go
CREATE TABLE ##ID
(IDDOC char(9) primary key clustered)
Go
INSERT INTO ##ID
SELECT DISTINCT IDDOC
FROM _1SJOURN
WHERE (DATE_TIME_IDDOC < '20040101')
Go
BEGIN TRANSACTION
DECLARE Mycur cursor for
SELECT sysobjects.name,syscolumns.name
FROM syscolumns INNER JOIN
sysobjects ON syscolumns.id = sysobjects.id
WHERE (syscolumns.name = N’iddoc’) OR
(syscolumns.name = N’docid’)
OPEN MyCur
DECLARE @TableName varchar(20)
DECLARE @ColName varchar(20)
FETCH NEXT FROM MyCur INTO @TableName, @ColName
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC (‘Delete from ‘+@TableName+’ with (tablock) where ‘+@ColName+’ IN (Select IDDOC FROM ##ID)’)
FETCH NEXT FROM MyCur INTO @TableName, @ColName
END
CLOSE MyCur
DEALLOCATE MyCur
COMMIT TRANSACTION
DROP TABLE ##ID
Сначала из таблицы журналов документов выбираются в отдельную временную таблицу все идентификаторы документов с датой меньше заданной. Теперь о том, что делает этот скрипт. Он проходится по метаданным и удаляет из всех таблиц, где есть колонка IDDOC или DOCID , строки с идентификатором документа, входящим в таблицу удаляемых. Таким образом чистятся таблицы документов, регистров и периодических реквизитов.
После выполнения данного скрипта остается только войти в режим конфигуратора и сделать пересчет служебных данных и пересчет итогов. На случай, если вы не избавились от ссылок на старые документы, то необходимо сделать еще и проверку логической целостности. В настройках поставить « Очищать ссылки ».
Наверное, не лишним окажется напоминание, что сначала перед тем, как осуществлять очистку базы 1С , следует провести проверку на копии. Действия скрипта соответствуют тому, как если бы мы выбрали программно все документы за удаляемый период и удалили их без контроля ссылочной целостности.
Теперь о производительности. Я проверил оба варианта очистки базы 1С — удаление в 1С методом выбора всех документов и удаления их без контроля ссылочной целостности, и удаление путем выполнения данного скрипта. В базе данных содержалась информация за период с « 01.09.2001 » по « 15.06.2004 ». Удалялся период по 2003 год включительно. Конфигурация самописная, но в данном случае, думаю, это никакого значения не имеет. Данные сравнения указаны в таблице:
Время, минут:секунд. | Удаление средствами 1C | Удаление средствами MS-SQL |
---|---|---|
53:41 | 5:39 |
Как видно по результатам сравнения, удаление средствами MS-SQL фактически ровно в 10 раз быстрее. Это соотношение действительно с учетом того, что для обоих вариантов будет запущен полный пересчет итогов из конфигуратора. Хотя в случае с 1C его выполнять желательно, но не обязательно (почему — читайте здесь и здесь), а в случае с MS-SQL — обязательно. Так что, если вы не будете выполнять пересчет итогов в случае удаления в 1С , то для полноценного сравнения времени работы нужно к времени работы скрипта ( 5:39 ), добавить время пересчета итогов в конфигураторе ( 2:00 ).
Если нужно обрезать, почистить, сделать резервную копию вашей базы данных или даже вынести часть учета вообще в другую БД, при этом размер БД или непрерывность работы таковы, что штатные средства становятся малопригодными для этой задачи, то такое решение тоже есть — DB REPLICATION .
Как очистить базу данных MySQL с помощью phpMyAdmin?
1. Войдите в cPanel>раздел Базы данных> выберите phpMyAdmin:
2. Выберите базу данных, которую вы хотите очистить. Список со всеми таблицами базы данных появится слева (у вас может быть только одна база данных, если размещен только один веб-сайт):
3. Установите флажок «Все», чтобы выбрать все таблицы и выбрать опцию «Удалить» из выпадающего списка с выбранным:
4. Будет запущен SQL-запрос DROP TABLE, который очистит все таблицы одновременно. Далее подтвердите свое желание, нажав кнопку «Да»:
Домен | Com домены на сайте Hostimul.com
Домен — означает имя веб-сайта, которое позволяет пользователям Интернета получать доступ к своему веб-сайту. Доступ к веб-сайту, не имеющему этого им..
Купить домен | Дешевые цены на домены в Hostimul.com
Купить домен — Нет необходимости тратить время на поиск надежной и прибыльной компании для покупки домена. Как команда Hostimul.com, мы предлагаем вам..
Дешевый Vps в Европе
Дешевый Vps в Европе в Hostimul.com — это виртуальный частный сервер. Вы можете купить это на Hostimul.com, где мы предоставляем виртуальные серве..
Vps в Европе
Наш Vps в Европе будет для вас отличным решением, если вы переросли среду общего хостинга и задаетесь вопросом, что делать дальше. Наши специалист..
Недорогой выделенный сервер
Недорогой выделенный сервер – это выделенный виртуальный сервер, услуга хостинга, при которой клиент полностью получает в личное пользование вирту..
Хостинг с большим дисковым пространством ✅
Хостинг с большим дисковым пространством предоставляет пользователям все преимущества безлимитной услуги. Хостинги предлагают клиентам разные усл..
Быстрый виртуальный хостинг✅
Ищете быстрый виртуальный хостинг ? В Hostimul вы найдете все, что вам нужно. Давайте уточним что такое виртуальный хостинг? Когда придет время вы..
Выделенный Сервер в Европе ✔️
Выделенный сервер в Европе, предлагаемый Hostimul.com станет для вас уникальной возможностью получить доступный и надежный сервер для вашего прое..
Купить Хостинг Дешево
Хотите купить хостинг дешево для вашего сайта ? Добро пожаловать в Hostimul.com, где найдете только выгодные тарифы. На рынке доступно несколько ..
Облачный хостинг
Решение выбрать облачный хостинг может быть продиктовано желанием иметь собственный сервер, и не платить за избыточную емкость жесткого диска, кот..
Хостинг недорогой
Ищете хостинг недорогой ? Hostimul.com будет для вас лучшим спутником по обеспечению вашего проекта наилучшей хостинговой услугой. В поисках самог..
Сервер для сайта
Надежный сервер для сайта необходим каждому, кто желает безопасный “ Дом ” для своего проекта-сайта. Крупному сайту, который интенсивно наполняет..
Сервер Аренда
Сервер аренда — это услуга, которая нужна особенно тем, кто имеет большой проект или сайт для безопасной и безотказной работы. Основные причины, ..
Виртуальный хостинг сайтов ✔️
Ищете виртуальный хостинг сайтов ? Hostimul будет для вас верным спутником по организации вашего проекта онлайн. Увеличьте скорость с помощью веб-..
Хостинг для wordpress Украина✔️
Услуга » Хостинг для wordpress Украина » в Hostimul является наиболее востребованной в силу своей надежности и качества обслуживания. Управляемые ..
Надежный Хостинг ✔️
Надежный хостинг доступен по адресу Hostimul.com по самым выгодным тарифам ! Владывая значительные средства в создание актуального и интересного с..
Хостинг выделенный сервер
Выбрать хостинг выделенный сервер для бизнеса не так просто, как кажется на первый взгляд. Одним из актуальных вариантов является выделенный серве..
Хостинг пробный период✅
Хостинг пробный период доступен в Hostimul.com на целый месяц с бесплатным доменом. Получите удобные услуги управления доменом вместе с учетной з..
Купить Хостинг Для Сайта ✅
Решили купить хостинг для сайта ? Вы пришли определенно по верному адресу ! Скорость сайта может сильно повлиять как на видимость вашей поисковой ..
Хостинг для интернет магазина
Ищете хостинг для интернет магазина ? Hostimul будет для вас наиболее лучшим вариантом для безопасной и отказоустойчивой деятельности вашего проек..
Хостинг бесплатный ✔️
Выберите хостинг бесплатный для оптимизации вашего бизнеса. Наши хостинговые услуги также распространяют свои услуги на таких администраторов веб-..
Vps в Сша ☑️
Хотитн продвижения бизнеса онлайн ? Будем рады предложить вам лучшие серверные опции, которые выведут возможности бизнеса на новый уровень. Vps ..
Vps в Украине ☑️
Vps в Украине стал самым популярным среди всех. Технология виртуализации используется службой хостинга, которая предоставляет частные вы..
Vps в Германи ✅
Vps Германи с использованием Hostimul.com означает, что вы можете быть уверены, что сможете использовать дополн..
Лучший хостинг ☑️
Хотите продвижение вашего проекта онлайн ? Для этого необходим лучший хостинг, которого вы найдете на Hostimul.com, являющийся лидером по хостинго..
Аренда виртуального сервера ☑️
Перед тем, как решитесь аренда виртуального сервера вам необходимо решить какой трафик ваш нужен. Виртуальный сервер это — хостинг-услуга сервер, ..
Выделенный сервер ☑️
Выделенный сервер идеально подходит для высоконагруженных сайтов, в особенности для игровых порталов, для больших интернет магазинов с высокой пос..
Купить хостинг ☑️
Купить хостинг — это процесс не самый легкий и требует учет определенных аспектов. Очевидно, чтобы ваш сайт был скоростным и ..
Виртуальный Сервер ☑️
Виртуальный сервер — это сервер, который совместно использует аппаратные и программные ресурсы с другими операционными систем..
Vps в Москве ✅
Заказать Vps в Москве через hostimul.com будет для вас очень выгодно и доступно. Независимо от того, устанавливается ли пользовательское приложен..
Baranova 2869/35, Žižkov,
130 00 Prague 3, Czechia
© 2023 HOSTIMUL S.R.O. ВСЕ ПРАВА ЗАЩИЩЕНЫ
Очистка базы SQL
Как можно очистить базу данных MS SQL ? Не удалением и пересозданием, а именно очистить, в enterprise manager такой команды не нашел.
По теме из базы знаний
- Очистка базы (частичная) средствами SQL (реализована возможность очистки средствами 1С)
- Создание первоначального образа с файлами РИБ или быстрая очистка базы от документов и движений по регистрам
- Очистка базы данных от данных по организации
- Очистка всех комментариев в базе средствами SQL
- Резервное копирование и восстановление 1С баз на PostgreSQL в Windows с помощью pgAdmin, bat-файлов и планировщика
- Дата
- Дата
- Рейтинг всех уровней
- Рейтинг 1-го уровня
- Древо развёрнутое
- Древо свернутое
Свернуть все
7. vcv 89 04.09.16 21:09 Сейчас в теме
(1) alex_gus, Попробуйте что-то типа
sp_MSforeachtable @command1=»delete FROM ‘?'»
В синтаксисе не уверен, писал по памяти.
Сработает только если нет всяких триггеров и прочих SQLных фишек, поддерживающих целостность.
Если же есть, лучше поискать другие средства добиться желаемого.
14. Armando 1399 06.09.16 21:14 Сейчас в теме
(1) alex_gus, если речь про 1С, то:
Глобальный контекст.УдалитьДанныеИнформационнойБазы (Global context.EraseInfoBaseData)
Глобальный контекст (Global context)
УдалитьДанныеИнформационнойБазы (EraseInfoBaseData)
Синтаксис:
Выполняет удаление данных информационной базы:
Из таблиц, определяемых структурой метаданных;
Из хранилищ настроек;
Из истории;
Административных параметров информационной базы;
Из списка пользователей.
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Примечание:
Если вызван из разделенного сеанса, то данные удаляются только для области данных, определяемой заданными значениями разделителей.
Для того, чтобы не записывать данные удаленной области (например, сохранение настроек отображения форм), сразу после вызова метода рекомендуется изменить значения параметров сеанса, определяющих разделение данных.
Удаление данных доступно пользователю с правом «Администрирование».
Удаление возможно, если установлен режим монопольного доступа к базе данных или области (вызван метод УстановитьМонопольныйРежим), иначе будет выдано исключение.
———————————————————————————