Перенос данных в Azure с внешним ключом, ссылающимся на столбец идентификаторов - PullRequest
1 голос
/ 18 сентября 2011

Я хочу перенести мою локальную базу данных в Azure.Однако в моей локальной БД есть таблица Table1 со столбцом

ID int identity(1,1) Not Null,

, а столбец 'column1' в таблице 'Table2' имеет ограничение внешнего ключа для столбца Table1.ID

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

Например, Table1.ID имеет значения (1, 2, 4, 5, 6 ...)

Если я обычно вставлю в таблицу Azure, мой Table1.ID на Azure будетбыть (1, 2, 3, 4, 5 ...) и путать мои отношения внешнего ключа.Я хочу предотвратить эту путаницу отношений между внешними ключами.

Есть идеи, как это сделать?

Ответы [ 2 ]

1 голос
/ 18 сентября 2011

Перед выполнением вставок включите вставку идентификатора для этой таблицы:

SET IDENTITY_INSERT Table1 ON

И затем вы можете включить столбец идентификатора во вставки, чтобы значения идентификаторов оставались неизменными. Позже, когда вы вставите строки, имеющие ссылки FK для таблицы 2, значения идентификаторов будут одинаковыми.

Просто убедитесь, что когда вы закончите, чтобы выключить идентификационную вставку, когда вы закончите:

SET IDENTITY_INSERT Table1 OFF
0 голосов
/ 19 сентября 2011

Подумайте об использовании мастера миграции SQL Azure , который позаботится о переносе ваших данных.

Корень вашей конкретной проблемы, хотя, как предложил @Mike Mooney, заключается ввам нужно использовать IDENTITY_INSERT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...