アカウント テーブルに新しい ID 用の新しい列を作成し、関連する各テーブルに新しい列を作成して、新しい ID 列を参照します。
ALTER TABLE accounts
ADD new_accountID int IDENTITY
ALTER TABLE notes
ADD new_accountID int
ALTER TABLE equipment
ADD new_accountID int
次に、各参照テーブルの new_accountID 列を accounts テーブルにマップできます。
UPDATE notes
SET new_accountID = accounts.new_accountID
FROM accounts
INNER JOIN notes ON (notes.accountID = accounts.accountID)
UPDATE equipment
SET new_accountID = accounts.new_accountID
FROM accounts
INNER JOIN equipment ON (equipment.accountID = accounts.accountID)
この時点で、各テーブルには、古いキーを持つ accountID と、新しいキーを持つ new_accountID の両方があります。ここからはかなり簡単です。
- accountID のすべての外部キーを解除します。
- 各テーブルで、UPDATE [table] SET accountID = new_accountID.
- accountID の外部キーを再度追加します。
- 不要になったため、すべてのテーブルから new_accountID を削除します。