1

我有一个使用 SQL Server 迁移助手从 MySql 迁移的数据库,它现在存储在 Azure 中。

SSMA 显然为其中一个表生成了一个名为 的新主键列ssma$rowid。我正在尝试将 PK 更改回 Card_Key,但出现以下错误:

应用更改时遇到错误。
执行 Transact-SQL 语句时发生异常:
ALTER TABLE [carddb].[Cards] ALTER COLUMN [Card_Key] INT NOT NULL。
索引“Card_Key”取决于列“Card_Key”。
ALTER TABLE ALTER COLUMN Card_Key 失败,因为一个或多个对象
访问此列。

怎么才能Card_Key再次PK?

4

1 回答 1

1

最简单的可能是使用正确的主键创建一个新表 [cards2] 并将数据从 [cards] 复制到新表中(只需运行 INSERT INTO cards2 ... SELECT ... FROM 卡)。完成后,您可以删除(或重命名为 [cardsold] 以确保安全)原始表 [cards],并将新表重命名为 [cards]: sp_rename cards2, cards

这应该有效。

于 2012-12-10T02:35:32.040 回答