1

シナリオ: 私が使用している環境は、Dev、UAT、および Live の 3 つです。それぞれに独自のデータベース、MyDb_Dev、MyDb_UAT、MyDb_Live があります。次に、すべてのスクリプトを含むソリューションに VS2012 データベース プロジェクトがあります。これは、ローカルにあるモデル データベース (MyDb_Model) を変更するときにうまく機能します。

やりたいこと: SQL 2012 で FileTables を使用したい (セットアップ方法は理解しています) が、環境を処理するオプションを構成できるようにスクリプトを作成する方法がわかりません。スクリプトを生成すると、名前が FileGroup として MyDb_Model になるようにハード コードされます。また、Dev データベースに公開しようとすると、データベース オプションが新しいスクリプトを取得できないことについて不平を言っています。Model データベースのオプションをスクリプトに含めると、名前が重複しているため、Dev データベースに公開しようとするとエラーが発生します。

質問: V2012 のデータベース プロジェクトを使用して FileTables (データベース オプション付き) をスクリプト化して構成可能にすることはできますか?それとも、独自のスクリプトを手動で作成する必要がありますか?

推奨: MyDb_Model をデータベース プロジェクトと比較します。新しく作成されたデータベースとして MyDb_Dev に発行します。

4

1 に答える 1

1

変数にそれぞれの環境固有のテキストが含まれている場合、プロジェクト変数でこれを処理する必要があるようです。次に、ハードコーディングされたパスの代わりに、オブジェクトでその変数を使用します。次の例では、"DocumentStore" という名前の FileTable を作成し、プロジェクト プロパティ - SQLCMD 変数で設定した "FileTableDirectoryVariable" という変数の値を使用します。正しいディレクトリを使用するように、公開プロファイルのそれぞれを設定してください。これらのテーブルに別のファイル グループを使用している場合は、SQLCMD 変数を使用して、同様の方法で FileGroup 設定を微調整できるはずです。

CREATE TABLE DocumentStore AS FileTable
    WITH ( 
          FileTable_Directory = '$(FileTableDirectoryVariable)',
          FileTable_Collate_Filename = database_default
         );
GO
于 2013-05-10T17:20:58.767 に答える