Несколько таблиц SQL с синхронизированными столбцами IDENTITY - PullRequest
2 голосов
/ 02 декабря 2010

Я работаю над "очисткой" базы данных и мне нужно синхронизировать столбцы IDENTITY.Я использую хранимые процедуры для обработки данных и зеркального отображения их из одной таблицы в другую (после очистки и исправления типов данных).В какой-то момент в будущем я захочу отрезать старую таблицу и использовать только новую таблицу, мой вопрос заключается в том, как обеспечить синхронизацию поля IDENTITY, пока они оба используются ... Как только старая таблица будет удалена,новый нужно будет продолжать автоинкрементно и перестраивать / изменять его для изменения поля IDENTITY не вариант.Возможно ли это или есть лучший способ сделать это?

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

Ответы [ 2 ]

3 голосов
/ 02 декабря 2010

Был там, сделал это.Поместите старый идентификатор в новую таблицу как FK.Удалите этот столбец непосредственно перед удалением старой таблицы.

1 голос
/ 02 декабря 2010
  1. Установить идентификатор новой таблицы как поле, не являющееся идентификатором.
  2. Измените либо процедуры заполнения данных, чтобы заполнить поле неидентификации в новой таблице значением идентификации старой таблицы.
  3. При переключении переключите новое поле на автоинкремент и соответственно установите номер семени .
...