そのため、私はこれまでやったことのないことを研究する任務を負っています。
VS2010 で C# を使用して構築された 3 つのアプリケーション モジュールは、 dbo.Samples などのテーブルを含む 1 つのデータベース (Database1) を使用しており、これらはすべてスキーマ「dbo.Table」を持っています。上層部の不明な理由により、Database1 の下にあるこれらすべてのテーブルを、padmin.PSTIF、petro.Facilities、webdc.AppTransactions など、さらに多くのスキーマを持つ Database2 に移動するように要求されました。
これら 3 つのモジュールでは、すべての接続文字列がapp.configファイルを介して構成され、表示のためのすべてのデータ トランザクション/選択は、接続文字列を使用してハードコーディングされた SQL ステートメントを介して行われます。
私の懸念は、dbo.Samplesを Database1 から Database2 に移動し、スキーマをmoss.Samplesなどに変更した場合、これらのハードコーディングされた各ステートメントも更新する必要があるかどうかです。現在、「SELECT * FROM Samples」のようなコードを書くことができます。接続文字列を Database2 に更新したとしても、新しいスキーマを使用するため、このステートメントを変更する必要がありますか?
編集:
DB2 のテスト環境バージョンに DB1 のダミー コピー テーブルをいくつか追加し、アプリケーションで実験しました。接続文字列を DB2 を指すように変更した後、ハードコーディングされた SQL ステートメントをそれぞれ確認し、テーブルの使用ごとに変更して新しいスキーマを含める必要があることがわかりました ( に変更FROM Sample
) FROM moss.Sample
。
接続文字列自体で使用したいスキーマを指定できるかどうかは誰にもわかりませんか? これにより、可能であれば、3 つのアプリケーションで約 200 の個々のステートメントを変更する必要がなくなります。
私の接続文字列の例は次のとおりです。
<connectionStrings>
<add name="conString" connectionString="Data Source=SERVER.domain.state.acroynym.us;Initial Catalog=DatabaseName;Integrated Security=true;"
providerName="System.Data.SqlClient" />
</connectionStrings>
に変更しようとしInitial Catalog=DatabaseName
ましInitial Catalog=DatabaseName.moss
たが、アプリケーションはデータベースが見つからないことを返しDatabaseName.moss
ました。