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

Откуда:
Сообщений: 11
Добрый вечер.

Есть таблица с первичным ключом - допустим IdPK. Есть порядка 250 таблиц с внешними ключами (либо неявная связь - есть обычный столбец, который не помечен как внешний ключ, но тем не менее ссылается(разные процедуры, вьюхи, триггеры и т.п.) на ключ IdPK).

Значение IdPK изменилось (не спршивайте как, просто глюк). Теперь нужно каким-то образом пройтись по ссылкам (по таблицам) и поменять значения внешний ключей (обычных полей).

Подскажите, как можно это организовать? М.б. есть какие-то алгоритмы, либо ПО?

Заранее благодарю за любую помощь/советы.

З.Ы. Если это важно - SQL Server 2008 SP2.
25 янв 12, 23:27    [11972607]     Ответить | Цитировать Сообщить модератору
 Re: Проход по связанным таблицам  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
Вся необходимая информация ищется в information_schema.referential_constraints + information_schema.constraint_column_usage, либо в sys.foreign_keys + sys.foreign_keys_columns + sys.columns.
26 янв 12, 00:08    [11972763]     Ответить | Цитировать Сообщить модератору
 Re: Проход по связанным таблицам  [new]
xaxaTyH
Member

Откуда:
Сообщений: 11
invm,

Спасибо. Правда, по неявным связям так пройти не получится (Те столбцы в таблицах, которые не являются внешними ключами, названия столбцов - никак явным образом не указывает на связь с родительской таблицей, но тем не менее, столбцы ссылаются на нее)
29 янв 12, 18:36    [11992287]     Ответить | Цитировать Сообщить модератору
 Re: Проход по связанным таблицам  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
xaxaTyH
invm,

Спасибо. Правда, по неявным связям так пройти не получится (Те столбцы в таблицах, которые не являются внешними ключами, названия столбцов - никак явным образом не указывает на связь с родительской таблицей, но тем не менее, столбцы ссылаются на нее)
Ну и как, по-вашему, сервер должен догадываться о наличии такой связи, если она только в голове разработчика существует? Теперь вам придется для, обновления всех таких "неявных" связей, скрипты ручками писать.
29 янв 12, 19:16    [11992467]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить