すべてのvarchar列をnvarcharタイプに変更する必要があります。このスレッドSQLServerの助けを借りてスクリプトを生成しました-データベース列をvarcharからnvarcharに更新するスクリプト(まだnvarcharでない場合)。
ただし、このスクリプトでは複合主キー列を変更できません。テーブルには多くの複合キーがあるため、これを手動で行うことはできません。
varchar複合キーからnvarcharへの変更をスクリプト化する方法はありますか?
すべてのvarchar列をnvarcharタイプに変更する必要があります。このスレッドSQLServerの助けを借りてスクリプトを生成しました-データベース列をvarcharからnvarcharに更新するスクリプト(まだnvarcharでない場合)。
ただし、このスクリプトでは複合主キー列を変更できません。テーブルには多くの複合キーがあるため、これを手動で行うことはできません。
varchar複合キーからnvarcharへの変更をスクリプト化する方法はありますか?
データベースのビルドプロセスはありますか?ソース管理システムはありますか?その場合は、ソース管理で検索と置換を行って変更を加え、データベースを再構築してから、スキーマ比較ツール(Visual StudioデータベースプロジェクトやRedGateスキーマ比較など)を使用して変更スクリプトを生成することをお勧めします。
ビルドプロセスまたはソース管理がない場合は、Management Studioを使用してデータベースのスクリプトを作成できます(データベースを右クリックし、[すべてのタスク]> [スクリプトの生成]を選択します)。
私はこれを部分的に手動で行うことにしました。まず、すべての主キーを手動でvarcharからnvarcharに変更しました(Management Studioを使用)。次に、スクリプトを使用して、他のすべての(制約のない)列をnvarcharに変更しました。その後、find-replaceを使用して、すべてのビュー、ストアドプロシージャ、およびトリガーを変更しました。最後に、Red Gate SQL Compareを使用して、データベースを本番データベースと比較しました。
また、一部のテーブルが大きすぎて同時に再構築できないため、最終的なスクリプトを小さな部分に分割する必要がありました(トランザクションログがドライブ全体を埋め尽くしました)。