0

最近、ストアド プロシージャおよび関数 SQL ファイルのソース管理を、SSMS と統合された VSS から Visual Studio 2012 のデータベース プロジェクトに移動しました。これにより、最終的な目標であった TFS と簡単に統合できるようになりました。

SSMS を使用した VSS では、入力したテーブル名、関数名、ビューなどを確認できました。しかし、Visual Studio 2012 では、Intellisense がこれらの特定の名前を認識していないことに気付きました。データベース名とロールを認識しているため、あるレベルでデータベースに接続されていることがわかります。

この機能を再度有効にする簡単な方法はありますか? 私はオンラインで調べましたが、この問題/状況を経験している人は他にあまりいません。

4

1 に答える 1

0

まさに私たちが望んでいたものではありませんでしたが、解決策を見つけました。VisualStudio がスキーマ情報をデータベースから直接取得できるようにしたいと考えています。(私たちのプロジェクトの SQL ファイルは、ビューとストアド プロシージャ専用でした)。ただし、テーブルと関数をプロジェクトにインポートすると、その情報を使用して IntelliSense が構築されました。

良いニュースは、解決策が見つかったことです。悪いニュースは、DB プロジェクトの外部のプロセスがテーブルの一部を変更する場合 (これを行うテーブルがいくつかあります)、インテリセンスが適切に機能する前に、プロジェクト内のそれらのスキーマを更新することを忘れないでください。

補足:これは、テーブルや関数などをインポートする簡単な方法です。特に、必要に応じてオブジェクトを時々更新する必要がある場合に役立ちます。

開始する前に、データベースからエクスポートするオブジェクトの種類 (テーブル、ストアド プロシージャ、ビュー、または関数) を決定します。エクスポートするアイテムごとに、DB プロジェクトの下にフォルダーを作成します。

SSMS で、データベース サーバーを開き、操作するデータベース インスタンスを右クリックします。[タスク] -> [スクリプトの生成] に移動します。そこから、特定のデータベース オブジェクトを選択します。この例では、テーブルのみを抽出します。[テーブル] を選択し、その他はすべてオフのままにして、[次へ] をクリックします。

この画面で、「オブジェクトごとに 1 つのファイル」を選択し、データベース プロジェクトの下にある「Tables」サブ フォルダへのパスを指定します。ALTER ではなく DROP と CREATE のスクリプトを使用したいので、[詳細] をクリックして、作成モードを [DROP と CREATE] に変更します。

ここからは、すべてのダイアログから「次へ」進むだけです。ブーム!これで、プロジェクトに含めることができる一連の SQL ファイルができました。これらの SQL ファイルにより、IntelliSense が適切に機能するようになり、すべてのデータベース オブジェクトを最初から再構築することなく、すべてのデータベース オブジェクトを生成するためのランチパッドが手に入ります。

于 2013-07-03T14:55:03.517 に答える