изменение значения первичного ключа в SQL Server 2005 - PullRequest
0 голосов
/ 29 июля 2010

У меня есть таблица с полем первичного ключа, для которого не установлено автоматическое увеличение.Я хочу изменить один из этих первичных ключей на что-то другое.

Проблема возникает с отношениями других таблиц.Дело в том, что тот, кто создавал эту систему, не строил отношения в SQL Server, а скорее вручную кодировал некоторые переопределения в программе, которая ее использует - программе VB 6.

Как мне обновить первичный ключ ивсе экземпляры первичного ключа в других базах данных?Я должен вручную найти экземпляры (хотя я знаю, что они есть только в двух таблицах) Первичного ключа и изменить их, но как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 29 июля 2010

Даже если человек, который первым создал таблицы, не включал в них внешние ключи, вы можете добавить их сейчас, если в ваших таблицах учитываются внешние ключи. Когда вы создаете внешние ключи, создайте их с опцией ON UPDATE CASCADE . Таким образом, когда вы обновите свой первичный ключ, соответствующие внешние ключи также будут обновлены.

0 голосов
/ 29 июля 2010

Очень осторожно :-) Я бы предложил использовать запрос:

select * from INFORMATION_SCHEMA.Columns where Column_Name = 'FieldID'

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

НТН.

...