質問

主キー値の大部分として、およびクラスター化インデックス(パフォーマンスに悪い)で、標準の並べ替えられていないGUIDを使用するブラウンフィールドSQL Server 2005データベースがあります。

これらを順次GUIDに変更するにはどうすればよいですか?課題の1つは、各主キーを変更するときにすべての外部キー値を置き換えることです。

このタイプの変換を実行するツールまたはスクリプトを知っていますか?

役に立ちましたか?

解決

newsequentialid()関数はデフォルトとしてのみ使用できることに注意してください

2列の新しいテーブルを作成します。元のテーブルのキーをこのテーブルに挿入します(他の列はそのままにしておきます)

元のテーブルに戻って、newsequantialidを使用してPKを更新します。カスケード更新がある場合は、FK自体が更新する必要があります

他のヒント

パフォーマンスに悪いことをどのように知っていますか?

GUIDの利点は、複数のプロセスが同時にレコードを作成することを心配する必要がないことです。プログラムによっては、コードを大幅に簡素化できます。

SequentialGuidsは、GuidがPKである場合のパフォーマンスに最適です。これが彼らの存在の背後にある理由です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top