1

SQL Server Migration Assistant を使用して 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 は、1 つ以上のオブジェクト
がこの列にアクセスしているため、失敗しました。

どうすればCard_KeyPK を再作成できますか?

4

1 に答える 1

1

最も簡単な方法は、正しい主キーで新しいテーブル [cards2] を作成し、[cards] から新しいテーブルにデータをコピーすることです (INSERT INTO cards2 ... SELECT ... FROM カードを実行するだけです)。それが完了したら、元のテーブル [cards] をドロップ (または安全のために [cardsold] に名前を変更) し、新しいテーブルの名前を [cards] に変更できます: sp_rename cards2, cards

これはうまくいくはずです。

于 2012-12-10T02:35:32.040 に答える