2016-09-28 4 views
0

Visual StudioでSQL Serverデータベースプロジェクトを使用している場合、データベースに1000を超えるストアドプロシージャがある場合、インポート時にVisual Studioはプロシージャを別々のディレクトリ。SQL Serverデータベースプロジェクトが新しいスクリプトファイルの作成を正しく処理しない

スキーマ比較機能を使用して、このようなインポート後に新しいストアドプロシージャをプロジェクトに同期しようとすると、Visual Studioはこの分割フォルダ構造を忘れて、新しいスクリプトをすべて「ストアドプロシージャ」フォルダに直接配置します。これは、スクリプト化された新しいストアドプロシージャが既存の構造に収まらないことを意味します。ユーザーは、この分離された構造を使用してライブ作業を行うか、プロジェクト参照を手動で更新し、Visual Studioによって作成された初期構造にファイルをコピーし直します。

ステップ

  1. 新しいSQLプロジェクトを作成します。
  2. ソリューションエクスプローラでプロジェクトを右クリックし、[インポート]> [データベース]を選択します。
  3. プロシージャが1000個以上格納されているSQL2008データベースにプロジェクトをバインドします。 「フォルダごとの最大ファイル数」を1000に設定します。
  4. VSがすべてのストアドプロシージャをスクリプトアウトできるようにします。自動的に が1000のバッチに分割され、必要に応じて各バッチに新しいフォルダ 'Proc1'、 'Proc2' が作成されます。
  5. SQLプロジェクトを右クリックして[スキーマ比較]を選択して新しい比較を開きます。
  6. SQLプロジェクトを 元のデータベースと比較することによって、データベースが正しく同期されていることを確認してください。保留中の変更はありません。
  7. 同期されたデータベースに新しいストアドプロシージャを作成します。
  8. 比較をもう一度実行すると、新しいストアドプロシージャ が[追加]タイプで表示されます。
  9. [更新]をクリックして、VSが新しい手順のスクリプトを作成できるようにします。
  10. 新しいスクリプトを元の1000区切りのフォルダ構造に配置する代わりに、代わりに新しいスクリプトを「ストアドプロシージャ」フォルダに直接配置します。

答えて

0

これは興味深いシナリオです。私はこれらの日のうちの1つをチェックします。

ここは私の2セントです。すべてのデータベースオブジェクトをデータベースプロジェクトI(または開発チーム)に最初にロードした後、新しいSPやオブジェクトをSSMS経由でデータベースに直接追加する作業をやめます。代わりに、それらをデータベースプロジェクトに追加し、必要なすべてのサーバーに展開します。この時点では、データベースプロジェクトは真のコードソースのように機能します。さらに、TFSブランチング機能を活用してQAバージョンのデータベースプロジェクトのProd版を保持することができます。私はまた、私の将来のコードのメンテナンスに役立つStored Procフォルダの下にSPを分類するために、フォルダに意味のある名前を付けることを試みます。

関連する問題