我有一个使用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?
答案 0 :(得分:1)
最简单的方法是使用正确的主键创建一个新表[cards2]并将数据从[cards]复制到新表中(只需运行INSERT INTO cards2 ... SELECT ... FROM cards)。一旦完成,您可以删除(或重命名为[cardsold]安全的一面)原始表[卡],并将新表重命名为[cards]:sp_rename cards2,cards
这应该有用。