SQL Script для очистки таблиц базы данных - PullRequest
3 голосов
/ 24 марта 2010

Мне нужно сделать резервную копию базы данных SQL Server с тоннами данных и импортировать ее в другую среду для обновления и тестирования.Поскольку я не заинтересован в данных, я просто хочу воссоздать схему на другом сервере.Существует опция под названием «Создать скрипт», но она выдает ошибки при их запуске на целевом сервере.

Любопытно, если кто-нибудь попытается написать сценарий SQL, который будет проходить по всем таблицам в БД и очистить строки, тем самым я могу просто создать резервную копию схемы в виде файла .bak и восстановить его на другом сервере.

Ответы [ 3 ]

3 голосов
/ 25 марта 2010

будьте осторожны с этим, но это делает это. он очищает все таблицы в вашей базе данных.

-- disable referential integrity
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'

-- print table name
EXEC sp_MSForEachTable 'truncate table ?'

-- enable referential integrity again
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
3 голосов
/ 24 марта 2010

Red Gate выпускает продукт под названием Sql Compare , который можно использовать для синхронизации вашей схемы из одной базы данных Sql Server в другую. Это, вероятно, намного проще, чем написание некоторых сценариев самостоятельно, плюс оно позволяет легко переносить изменения, если две базы данных позже не синхронизируются. Это не бесплатный продукт, но вы можете использовать его бесплатно в течение 14 дней.

1 голос
/ 25 марта 2010

Вам необходимо:

  1. Отключить все ограничения для таблиц
  2. Усеченные таблицы
  3. Воссоздать ограничения
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...