web-dev-qa-db-ja.com

SQL Server Management Studio 2012:SSMSプロジェクトにフォルダーを作成するにはどうすればよいですか?

私はSSMS 2012を使用して、SQL Server 2012および使用しているAzure SQLサーバーと通信しています。私はSQLの専門家ではないので、今後の参照用にSQLスクリプトのほとんどを保存しています。 SSMSプロジェクトで20個程度の.SQLスクリプトをすぐに実行しましたが、それらはすべて同じ 'Queries'フォルダーの下にあります。

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

17
DeepSpace101

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

注意深いユーザー:SSMS 2016をインストールしても、古いものを使い続けることができます。ノートを参照してください [1] 未満。

そこで、projectsの代わりにsolutionsの使用を開始します。


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

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

  1. ソリューションアイテム(ツリールート)を右クリックし、メニューからAdd>New Solution Folder
  2. ステップ1は、追加したすべてのフォルダでも機能するようになりました。

SQLスクリプトの追加:

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

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

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

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

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

    • 注意が必要な設定はOptions>SQL Server Object Explorer>サーバーバージョンのスクリプト>(サーバーバージョンを設定)
  2. さまざまなSSMSバージョンがうまく機能します。つまり、SSMS 2008とSSMS 2016を一緒にインストールして問題なくテストできます。

7
miroxlav

SSMSで、テンプレートブラウザースナップインをまだ表示していない場合は、メニュー、表示、テンプレートエクスプローラー(ホットキー Ctrl-Alt-T)。

テンプレートはローカルマシンのこのフォルダから読み込まれます

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

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

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

6
孔夫子

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

4
mrdenny

サブフォルダの不足は確かにイライラさせられます。私は自分の作品を同じソリューションの別々のプロジェクトに整理してみます。それぞれにQueriesフォルダーがあります...サブフォルダーに名前を付ける方法でプロジェクトを命名します(作成できる場合)。

2
Aron

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

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

それでも、Steve Balmerがこのソリューションを成功に導いたようです。ファイルをそこに保存できますが、SSMSで開いた場合、その.sqlファイルの名前では開かれず、一般的な名前になります。したがって、クエリ、関数、テーブルスクリプト、sprocなどをすべて整理しておくために、この厳密な規則があります。

すばらしい答えですが、Windows 8.1では除外されました。

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

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

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

ここで少し混乱しています...つまり、VS 2013のDBプロジェクトで必要なフォルダー構造を取得できますが、リモートサーバーにログオンしてテストする場合は、ファイルからファイルごとにアクセスする必要がありますSSMS。裏側の痛み...私は[〜#〜] ide [〜#〜]がこれを行います。

1
user1585204

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ファイルであるため、ソリューションエクスプローラーのQueriesフォルダーの下に配置されました。ただし、物理的にはディスク上の適切なフォルダにあります。これが正しい方向への一歩です。

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

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

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

0
RonSanderson