SQL Server Management Studio 2012:SSMSプロジェクトにフォルダーを含める方法


17

SSMS 2012を使用して、使用しているSQL Server 2012およびAzure SQLサーバーと通信しています。私はSQLの専門家ではないので、将来の参考のためにほとんどのSQLスクリプトを保存しています。SSMSプロジェクトで20個ほどの.SQLスクリプトにすぐに遭遇しましたが、それらはすべて同じ「クエリ」フォルダーの下にあります。

プロジェクトに「サブフォルダー」を作成して、スクリプトを適切に整理する方法はありますか?他のほとんどの人はどのようにスクリプトを整理しますか?このバグが私のような初心者であれば、実際の管理者にとっては本当の問題であるに違いありません(潜在的に何百ものスクリプトを使用していますか?)


2
私には、すべてのスクリプトを1つの巨大な.sqlファイルに保管している友人がいます。そうすれば、1つのファイルを追跡するだけで済みます。
マックスヴァーノン

私は、DropBoxアカウントに同期されたフォルダーにそれらを保持する人々を知っています。次に、SkyDriveにも保存するもの。私は、SSMSでプロジェクトを使用する人ではありません。
ショーンメルトン

これは、スクリプトマネージャーに慣れた場合に便利な場所です。私はそれが好きでしたが、私にとってはちょっとクリックしませんでした。DropBoxでバックアップしたいくつかのフォルダーに、スクリプトをローカルに保存することを好みます。SSMSプロジェクトも好きではありませんでした。
マリアン

:あなたはのここに、ツールSQLTreeoを使用することができますsqltreeo.com

回答:


7

最後に、SSMS 2016でサブフォルダーが可能になりました。

注意深いユーザー:SSMS 2016をインストールしても、古いものを引き続き使用できます。[1]以下の注を参照してください。

そこから、プロジェクトの代わりにソリューションの使用を開始します


サブフォルダーは次のように機能します。

ソリューションサブフォルダーの追加:

  1. ソリューションアイテム(ツリールート)を右クリックし、メニューから[ 追加 ] > [ 新しいソリューションフォルダー ]を選択します。
  2. ステップ1は、追加した任意のフォルダーでも機能するようになりました。

SQLスクリプトの追加:

  • 任意のフォルダーを右クリックし、[ 追加 ]メニューから、既存のSQLファイルまたは新しいSQLファイルを追加します(リストで、SQL拡張子を持つアイテムタイプを見つけます)。

あなたの古き良きプロジェクト(悪い古きプロジェクト)

  • レガシーの理由、接続のホストなどのために有益であると思われる場合でも、プロジェクトをソリューションでホストできます。新しいプロジェクトを追加するか、既存のプロジェクトをソリューションにインポートするだけです。

[1] アップグレードについて:

  1. SQL Server 2008-2016は、SSMS 2016によって公式にサポートされています。詳細については、ダウンロードページを参照してください。古いバージョンの場合、お気に入りの古いSSMSを保持できます。以下のポイント2を参照してください。

    • 注意が必要な設定は、[ オプション] > [ SQL Serverオブジェクトエクスプローラー] > [ サーバーバージョンのスクリプト] >(サーバーバージョンの設定)のみです。
  2. 異なるSSMSのバージョンが一緒によく生きる、あなたはSSMS 2008 SSMS 2016を持つことができ、すなわち、問題なく一緒にインストール-テスト。


これは便利です。内部では、SSMSがこれらすべてのファイルを単一のディレクトリ内のフラットファイル構造に格納しているため、2つの異なるフォルダに同じ名前のファイルを置くことはできません。
ジョン

@Jon –これはあまり真実ではありません。一見混乱するかもしれませんが、プロジェクトツリーに表示されるファイルとフォルダーの構造は、ディスク上のファイルの位置とは無関係です。ディスク上では、フラットである必要はありません(新しいファイルを別の場所に保存してみてください...)、必要に応じてディレクトリに配布できます。つまり、ファイルシステム内の任意のディレクトリにファイルを保持し、SSMSプロジェクトツリーの任意の仮想フォルダーに追加できます。(記憶が正しければ、参照の複製も可能です。)欠点:ファイルを2度(dirsとプロジェクトフォルダーに)整理する必要があります。
ミロクスラフ

6

SSMSで、すでにスナップインにテンプレートブラウザが表示されていない場合は、メニューに行き、ビュー、テンプレートエクスプローラ(ホットキーCtrl- - )。AltT

このフォルダーから、ローカルコンピューターからテンプレートが読み込まれます

C:\ Program Files(x86)\ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ SqlWorkbenchProjectItems \ Sql

必要に応じてサブフォルダーを追加したり、ネストしたりすることもできます(WindowsエクスプローラーまたはSSMSを使用)。間違っていない場合、フォルダーはSSMSの起動ごとに1回しか読み込まれないため、SSMSを再起動して、フォルダーの変更をファイルシステムから取得する必要があります。

p / s-このメソッドは、プロジェクトスクリプトを整理する目的でテンプレートブラウザを再利用します!


答えにはほど遠いですが、これはこれまでに提案された中で最も控えめなハックです!共有してくれてありがとう、これをあと数日間開いたままにします
...-DeepSpace101

4

悲しいことに、SSMSプロジェクトはサブフォルダーをサポートしていません。SQLが保存する既定のフォルダーについて話している場合、はい、そこにサブフォルダーを作成できます。これは、ハードドライブ上の単なるフォルダーです。そのフォルダーは、デフォルトで「C:\ Users {username} \ Documents \ SQL Server Management Studio \ Projects」にあります。


2

サブフォルダーがないことは確かにイライラします。同じソリューションで、自分のものを別々のプロジェクトに整理してみます。それぞれにクエリフォルダーがあります...サブフォルダーに名前を付けるのと同じ方法でプロジェクトに名前を付けます(作成できる場合)。


1

上記の回答3に追加し、C:\ Program Files(x86)\ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ SqlWorkbenchProjectItems \ Sqlでテンプレートを再利用することで状況を回避します。

フルコントロールのマシンユーザーアカウントにアクセス許可を追加する必要があります。(宛先フォルダ、プロパティを右クリックし、マシンユーザーを選択、編集など)

それでも、スティーブバルマーがパスでこのソリューションを先導したようです。そこにファイルを保存できますが、SSMSで開くと、その.sqlファイルの名前では開かれず、一般名になります。したがって、クエリ、関数、テーブルスクリプト、sprocなどをすべて整理するためだけに、このすべての問題があります。

素晴らしい答えですが、Windows 8.1では、それは排除されました。

私が持っている最良の答えは、SSMSを介してファイルシステムに保存することです。これは、.sqlファイルのネストを尊重すると思います。Visual Studio 2013でデータベースプロジェクトを作成する必要があります。データベースプロジェクトでは、製品フローに適したフォルダーをセットアップできます。

しかし、これらのクエリをVisual Studioのサーバーエクスプローラーで開くことはできません...ただし、作業中、SPROCスクリプト、UDFスクリプトなどの場合、クエリを1か所で整理することが可能です。

この種のプロジェクト作業を行うためのIDEはありません。ここで別の回答者の言葉を借りれば、それは悲しいことです。

ここで少し乱暴に暴言します...言い換えると、VS 2013のDBプロジェクトで必要なフォルダー構造を取得できますが、リモートサーバーにログオンしてテストするには、ファイルごとにアクセスする必要がありますSSMS。裏面の痛み...これを行うIDEが必要です。


0

SSMSプロジェクトファイルを手動で編集して、ソリューションの下にフォルダーを追加することにより、前進しました。テキストエディタで.ssmssqlprojファイルを開きます。LogicalFolderというノードを検索します。Miscellaneousノードは、実行する必要があるものの良いモデルです。

これらの行をコピーして、名前を表示したいフォルダーに変更するだけです。また、Type値を一意の値に変更します。これが私がしたことです。

<LogicalFolder Name="Tables" Type="4" Sorted="true">
  <Items />
</LogicalFolder>
<LogicalFolder Name="Functions" Type="6" Sorted="true">
  <Items />
</LogicalFolder>
<LogicalFolder Name="User-defined Table Types" Type="7" Sorted="true">
  <Items />
</LogicalFolder>

プロジェクトファイル(.ssmssqlproj)のコピーを保持してください。何度か行ったように、編集を台無しにすると、プロジェクトは開きません。TFSアドインをインストールし、プロジェクトファイルをチェックインしている場合、これはそれほど悪くはありません。変更を破棄するだけです。ただし、そうでない場合は、必ずコピーを作成してください。

次に、ソリューションの下にフォルダーを作成して、論理フォルダー名と一致させます。その後、テーブル定義スクリプトとユーザー定義のテーブルタイプ定義スクリプトを作成し、それぞれのフォルダーに保存しました。ソリューションエクスプローラーの「その他」フォルダーの下に表示されたので、適切なフォルダーにドラッグしました。

これは物事が決裂した場所です。なぜなら、ストアドプロシージャ、関数、テーブル、およびタイプはすべて、拡張子が.sqlのファイルにあるからだと思います。これらは.sqlファイルであるため、ソリューションエクスプローラーのクエリフォルダーの下に配置されました。ただし、これらは物理的にディスク上の適切なフォルダーにあります。それが正しい方向への一歩です。

プロジェクトファイルの "Type"属性が特定のファイル拡張子に対応しているかどうか、そしてそれらが何であるかを把握できるかどうかを確認したいと思います。適切な拡張子を取得できれば、SSMSはファイルを適切なプロジェクトフォルダーに配置します。

SSMSはVisual Studioに基づいているため、スプラッシュスクリーンによると、Visual Studioを見て、その動作を確認する場合があります。

しかし、私はそこに途中ですので、おそらくあなたの一人が残りを理解することができます!


これはうまくいきませんでした。開けません。
ソハムダスグプタ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.