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

Откуда:
Сообщений: 2
Всем привет, очень нужна помощь специалистов! Сам я новичок, поэтому не судите мои глупые вопросы строго.

Итак, имеются две абсолютно одинаковые по структуре базы, с одинаковыми по структуре и настройкам таблицами. Различаются базы только хранящимися в таблицах данными. Имена таблиц тоже одинаковые. Проэкт большой и все таблицы мужду собой тесно переплетены.

Допустим, эти базы называются Baza1 и Baza2.

Поручил одному человеку изменить 2 таблицы (tbl1 и tbl2) в базе Baza1, с условием, что потом можно будет вернуть обе таблицы в первоначальное положение (включая АБСОЛЮТНО ВСЕ настройки, а не только данные и структуру).
C задачей он не справился в полной мере, но и я тоже не знаю, что пошло не так...
Вот, что он сделал:

select * into tbl1_rec from tbl1
select * into tbl2_rec from tbl2

^ якобы бэкапы двух таблиц
Далее мы протестировали все, что хотели, и встала задача вернуть обе таблицы на место.
DROP TABLE tbl1
DROP TABLE tbl2
select * into tbl1 from tbl1_rec
select * into tbl2 from tbl2_rec


Вроде бы как все вернулось на место. Но эти таблицы стали вести себя неадекватно, как будто "не прижились" в текущую структуру базы. Пользователи не могут вносить в них новые записи и еще много чего похерелось.
Точно знаю только то, что в tbl1 был IDENTITY, но он вроде не нарушился.
Теперь не знаю, что и делать, как вернуть на место все настройки и триггеры тех двух таблиц.

Повторяю, что есть точно такая же база Baza2, в которой все хорошо с подобными двумя таблицами. МОжет возможно все настройки tbl1 и tbl2 из Baza2 скопировать в злополучную Baza1. Данные терять нельзя!((



Действовать МОГУ ТОЛЬКО ПУТЕМ T-SQL, так как сейчас нахожусь без прямого доступа к серверу и SQL менеджеру.

Вопрос в том, как узнать все возможные настройки таблиц tbl1 tbl2 из Baza2, и потом перенести их в таблицы tbl1 tbl2 Baza1? Возможно ли это? Заранее огромное спасибо за любую помощь и советы!
12 сен 15, 13:23    [18141832]     Ответить | Цитировать Сообщить модератору
 Re: Найти связи между таблицами.  [new]
sp_help
Guest
kentntl50,

sp_help
12 сен 15, 13:51    [18141890]     Ответить | Цитировать Сообщить модератору
 Re: Найти связи между таблицами.  [new]
max44
Member

Откуда: МОСКВА
Сообщений: 273
Этой командой DROP TABLE tbl2 вы грухнули не только данные но и структуру таблицы, индексы, ограничения, тригеры ...
а этой командой вы создали колонки и перенесли только данные.


1. В идеале нужен полный бэкап Baza1 (до DROP TABLE), так-как ваше утверждение, что структура Baza1=Baza2 может быть все таки ошибочным.
2. Если бэкапа нет, то заскриптуйте таблицы 1 и 2 в Baza2 c "полной детализацией всех объектов" и сравните с Baza1.

Настройка "полная детализация всех объектов" в MSSMS Tools->Options->SQL Server Object
Explorer->Scripting поставьте везде true


Также есть сторонние утилиты для сравнения БД
12 сен 15, 17:35    [18142357]     Ответить | Цитировать Сообщить модератору
 Re: Найти связи между таблицами.  [new]
kentntl50
Member

Откуда:
Сообщений: 2
Спасибо за ответы, кажется проблема частично решена. Там была куча FK и всяких триггеров. Потихоньку восстанавливаем все с нуля
12 сен 15, 18:13    [18142458]     Ответить | Цитировать Сообщить модератору
 Re: Найти связи между таблицами.  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2396
kentntl50,

на будущее - надо не DROP, а Truncate (очистить)
и то могут быть проблемы
14 сен 15, 10:56    [18145563]     Ответить | Цитировать Сообщить модератору
 Re: Найти связи между таблицами.  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
StarikNavy
kentntl50,

на будущее - надо не DROP, а Truncate (очистить)
и то могут быть проблемы
TRUNCATE не получится, если есть FK
14 сен 15, 11:09    [18145660]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить