Как удалить все строки из всех таблиц в базе данных SQL Server?
sql-server-2005
Михал Повага
источник
источник
Ответы:
Обратите внимание, что TRUNCATE не будет работать, если вы установили ссылочную целостность.
В этом случае это будет работать:
источник
USE [MyDataBase]
:? Сработает ли приведенная выше идея, если она будет адаптирована каким-либо образом? ... Потому что я не хочу удалять все базы данных, хранящиеся на сервере SQL.В моем недавнем проекте моей задачей было очистить всю базу данных с помощью оператора sql, и каждая таблица имела много ограничений, таких как первичный ключ и внешний ключ. В базе данных более 1000 таблиц, поэтому невозможно написать запрос на удаление для каждой таблицы.
Используя хранимую процедуру с именем sp_MSForEachTable, которая позволяет нам легко обрабатывать некоторый код для каждой таблицы в одной базе данных. Это означает, что он используется для обработки одной команды T-SQL или разных команд T-SQL для каждой таблицы в базе данных.
Поэтому выполните следующие шаги для усечения всех таблиц в базе данных SQL Server:
Шаг 1. Отключите все ограничения для базы данных, используя приведенный ниже SQL-запрос:
EXEC sys.sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
Шаг 2. Выполните операцию удаления или усечения для каждой таблицы базы данных, используя следующую команду sql:
Шаг 3. Включите все ограничения для базы данных, используя следующую инструкцию sql:
источник
sql server azure
?Я должен был удалить все строки и сделал это с помощью следующего скрипта:
Надеюсь это поможет!
источник
Вот решение, которое:
INFORMATION_SCHEMA.TABLES
для конкретной базы данныхSELECTS
таблицы на основе некоторых критериев поискаsysdiagrams
и__RefactorLog
Сначала я пытался
EXECUTE sp_MSforeachtable 'TRUNCATE TABLE ?'
, но это удалило мои диаграммы.источник
ALTER TABLE
Бит для отключения ограничений не удается.В моем случае мне нужно было включить QUOTED_IDENTIFIER. Это привело к небольшому изменению ответа Марка Рендла выше:
источник
DELETE failed because the following SET options have incorrect settings: 'QUOTED_IDENTIFIER'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or filtered indexes and/or query notifications and/or XML data type methods and/or spatial index operations.
источник
Вы можете удалить все строки из всех таблиц, используя подход, предложенный Рубенсом, или просто удалить и заново создать все таблицы. Всегда хорошая идея иметь полные сценарии создания БД, так что это может быть самый простой / быстрый способ.
источник
Для некоторых требований мы могли бы пропустить определенные таблицы. Я написал скрипт ниже, чтобы добавить некоторые дополнительные условия для фильтрации списка таблиц. Приведенный ниже скрипт также отображает количество удалений до и после удаления.
источник
Этот ответ основан на ответе Зака Смита путем сброса столбца идентификаторов. :
Вот запрос:
источник
источник
если вы хотите удалить всю таблицу, вы должны следовать следующей инструкции SQL
источник