Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Полная очистка базы????  [new]
AleXp_
Member

Откуда:
Сообщений: 13
Есть супермеганавороченная база. Проблема в том, чтобы произвести полную очистку данных в этой базе без потери структуры. В ручную писать скрипт очистки - нереально из-за жуткой взаимосвязи данных. Сгенерить скрипт всей базы, а затем восстановить, тоже не получается. Может кто подскажет, что делать...?
29 янв 03, 14:34    [117244]     Ответить | Цитировать Сообщить модератору
 Re: Полная очистка базы????  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Сгенерить скрипт всей базы, а затем восстановить, тоже не получается.
Эт почему?
29 янв 03, 14:41    [117261]     Ответить | Цитировать Сообщить модератору
 Re: Полная очистка базы????  [new]
Shura_M
Member

Откуда: Москва
Сообщений: 392
Предложил бы:
1.для каждой таблицы выполнить
ALTER TABLE [TableName] NOCHECK CONSTRAINT ALL
2.для каждой таблицы выполнить
TRUNCATE TABLE [TableName]
3.для каждой таблицы выполнить
ALTER TABLE [TableName] CHECK CONSTRAINT ALL
29 янв 03, 14:51    [117275]     Ответить | Цитировать Сообщить модератору
 Re: Полная очистка базы????  [new]
AleXp_
Member

Откуда:
Сообщений: 13
Не получилось, пишет:
Cannot truncate table 'ТБЛ_1' because it is being referenced by a FOREIGN KEY constraint.
29 янв 03, 15:08    [117310]     Ответить | Цитировать Сообщить модератору
 Re: Полная очистка базы????  [new]
AleXp_
Member

Откуда:
Сообщений: 13
Звиняюсь, сразу не понял, всё работает!
29 янв 03, 15:10    [117321]     Ответить | Цитировать Сообщить модератору
 Re: Полная очистка базы????  [new]
Вася
Member

Откуда: местный
Сообщений: 543
to AleXp_

У меня тоже не получилось
Cannot truncate table 'ТБЛ_1' because it is being referenced by a FOREIGN KEY constraint.

Объясни
30 апр 03, 09:48    [187963]     Ответить | Цитировать Сообщить модератору
 Re: Полная очистка базы????  [new]
xoxoji
Member

Откуда: Новосибирск
Сообщений: 14
э...непомню как в mssql сервере - уже год не занимался...
но в Оракле сделал так:
написал функцию, которая генерит запрос примерно такой:


ALTER TABLE USERS DISABLE CONSTRAINT U_CL_FK;
ALTER TABLE USERS#HIST DISABLE CONSTRAINT U#H_U_CL_ID_FK;
ALTER TABLE DOCUMENTS DISABLE CONSTRAINT DOC_PO_CL_FK;
ALTER TABLE DOCUMENTS DISABLE CONSTRAINT DOC_PL_CL_FK;
truncate table client;
commit;
ALTER TABLE USERS#HIST ENABLE NOVALIDATE CONSTRAINT U#H_U_CL_ID_FK;
ALTER TABLE USERS ENABLE NOVALIDATE CONSTRAINT U_CL_FK;
ALTER TABLE DOCUMENTS ENABLE NOVALIDATE CONSTRAINT DOC_PO_BANK_FK;
ALTER TABLE DOCUMENTS ENABLE NOVALIDATE CONSTRAINT DOC_PL_BANK_FK;



надеюсь понятно... все это сделать можно взяв данные из системных таблиц..
и потом ее вызываешь подряд для всех нужных таблиц...
занимает 3 минуты на 15Гб..

хотя вещь страшная..
30 апр 03, 10:01    [187984]     Ответить | Цитировать Сообщить модератору
 Re: Полная очистка базы????  [new]
Вася
Member

Откуда: местный
Сообщений: 543
to xoxoji
спасибо , понятно
30 апр 03, 10:12    [188002]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить