在帐户表中为您的新 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 列映射到帐户表。
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,因为它不再需要。