0

既存のデータベースを変更して、新しいデータベースをセットアップしようとしています。主キーを変更する更新ステートメントを実行しようとすると、SQL Server で次のエラーが発生することがわかりました。

Cannot update identity column 'columnname'.

これを回避する必要があることはわかりますが、そもそもなぜ SQL Server にこのような制限があるのでしょうか? ID列に挿入できますが、UPDATEしないのはなぜですか?

4

1 に答える 1

1

ID 列は通常、外部キーとして使用されます。つまり、行を複製する代わりに ID 列の値を格納する他のテーブルとデータベースがあります。ID 列を更新すると、すべての外部キーが破損するため、実行しないでください。本当は外部キーではないと思う場合や、他のすべてのデータベースを更新できると確信している場合でも、これが SQL の仕組みであるため、「回避」しようとしないでください。

新しいデータベースをセットアップする場合は、新しいデータベースに新しいキーを作成し、既存のキーを変更しないでください。

于 2013-11-07T23:22:54.747 に答える