私の現在のプロジェクトでは、複数のクライアントデータベースを1つのサーバーデータベースに同期する必要があります。私はMicrosoftの同期フレームワークで試してみたが、私の場合は役に立たない。そのため私は手動で同期を行う必要があります。そのために私は主キー制約から to guidすべてのテーブルを変更する必要があります。主キーをintからGuidに移動する
問題は、この主キーは他のテーブルの外部キーとも呼ばれます。 私はSQLが得意ではないです、以下
Moving from ints to GUIDs as primary keys
を参照していました。私はその論理を理解しましたが、実際の実装は私にとって非常に困難です。
ALTER TABLE MyTable
ADD GuidCol NVARCHAR(50) NOT NULL,
CONSTRAINT AK_GuidCol UNIQUE(GuidCol)
上記のコード私は多くのグーグルグーグルの後でユニークな列として列GuidColを追加しようとしました。しかし、 私は知らないどのようにして新しく作成された列に値を入力できますか? 値を割り当てた後に、この列をPKとして作成するにはどうすればよいですか? このプロセスで既存の外部キー制約が破られないようにする方法を教えてください。
外部キーの種類とは何が関係していますか?間違った問題に対処しようとしている可能性があります。 –
手動同期では外部キーを使用しません。しかし、ここで私は新しい一意のGUID列を追加しようとしています。この列をPKにしたいので、すべての外部キーテーブルを更新する必要があります。例えば。 PKが1、GUIDがGならば、FKが1からGまでの他のテーブルのエントリを変更する必要があります。私はあなたが私が言うことを得ることを願っています。 – sachin