0

顧客ごとに個別の SQL Server データベースを必要とするアプリケーションを構築しています。

これを実現するには、新しい顧客フォルダーを作成し、そのフォルダーにプロトタイプ データベースのコピーを配置し、データベースの名前を変更して、それを新しい "データベース インスタンス" として SQL Server にアタッチできる必要があります。プロトタイプ データベースには、必要なテーブル、フィールド、およびインデックスの定義がすべて含まれていますが、データ レコードは含まれていません。SMO を使用して、データベースのアタッチ、デタッチ、および名前の変更を管理します。

プロトタイプ データベースを作成する過程で、Sql Server Management Studio を使用して、データベースのコピー (コンパニオン .MDF、.LDF ペア) を SQL Server にアタッチしようとしたところ、SSMS がデータベースが存在することを期待していることがわかりました。

c:\program files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\MyDatabaseName.MDF

これは SQL Server の "機能" ですか? 個々のデータベースを別々のディレクトリで管理する方法はありますか? それとも、すべての顧客データベースを同じディレクトリに配置する必要がありますか? (私はこれよりも少し良いコントロールを望んでいました).

注: 現在 SQL Server Express を使用していますが、テスト目的のみです。運用データベースは、SQL Server 2008、エンタープライズ バージョンになります。したがって、「ユーザー インスタンス」はオプションではありません。

4

1 に答える 1

0

MDF には、すべてのデータベース ファイルの物理パスを含むテーブルが含まれています。接続操作中に場所を上書きできます。

CREATE DATABASE <dbname>
 ON (name=dbfilelogicalname, filename='c:\myNewPath\dbfilename.mdf'),
 (name=dbfile2logicalname, filename='c:\myNewPath\dbfilename2.ndf'),
 (name=dbloglogicalname, filename='c:\myNewPath\dblogfilename.ldf')
 FOR ATTACH;
于 2010-04-21T00:24:05.170 に答える