115

主キー制約に列がないテーブルがあります。SQL Serverで編集するのではなく、これをスクリプトに入れて、更新スクリプトの一部として追加したいと思います。

これを行うためにどの構文を使用できますか?キー制約を削除して再作成する必要がありますか?

4

6 に答える 6

172

はい。唯一の方法は、Alter テーブルで制約を削除してから再作成することです。

ALTER TABLE <Table_Name>
DROP CONSTRAINT <constraint_name>

ALTER TABLE <Table_Name>
ADD CONSTRAINT <constraint_name> PRIMARY KEY (<Column1>,<Column2>)
于 2012-01-06T17:20:40.157 に答える
24

PRIMARY KEY CONSTRAINT変更することはできません。ドロップして再度作成することしかできません。大きなデータセットの場合、実行時間が長くなり、テーブルが使用できなくなる可能性があります。

于 2012-01-06T17:53:35.230 に答える
3

パフォーマンスに関しては、削除および作成時に再更新されるため、この間非クラスター化インデックスを保持する意味はありません。ビッグ データ セットの場合は、テーブルの名前を変更することを検討する必要があります (可能であれば、セキュリティ設定はありますか?)、正しいキーを使用して空のテーブルを再作成すると、そこにすべてのデータが移行されます。これに十分なスペースがあることを確認する必要があります。

于 2017-07-03T11:48:25.400 に答える