SQL Server Management Studio 2012: как иметь папки в проекте SSMS?

17

Я использую SSMS 2012 для общения с SQL Server 2012 и SQL-серверами Azure, которые мы используем. Я признаю, что я не эксперт по SQL, поэтому я сохранил большинство своих сценариев SQL для дальнейшего использования. Я быстро столкнулся с 20 или около того сценариями .SQL в проекте SSMS, и все они живут в одной папке «Запросы».

Есть ли способ создать «подпапки» в проекте, чтобы я мог правильно организовать свои сценарии? Как большинство других людей организовывают свои сценарии? Я совершенно уверен, что если это приводит к появлению ошибок у новичка, как у меня, это должно быть настоящей проблемой для настоящего администратора (возможно, с сотнями сценариев?)

DeepSpace101
источник
2
У меня есть друг, который хранит все свои сценарии в одном гигантском .sqlфайле. Таким образом, вам нужно отслеживать только один файл.
Макс Вернон
Я знаю людей, которые просто хранят их в папке, которая синхронизируется с их учетной записью DropBox. Затем те, которые сохраняют его на своем SkyDrive. Я не из тех, кто использует проекты в SSMS.
Шон Мелтон,
Это где Script Manager может пригодиться, если вы привыкнете к этому. Хотя мне понравилось, для меня это вроде не щелкнуло. Я просто предпочитаю сохранять свои сценарии локально, в некоторых папках, которые я сохраняю в DropBox. Проекты SSMS тоже никогда не нравились.
Мариан
Вы можете использовать SQLTreeo, вот инструмент: sqltreeo.com

Ответы:

7

Наконец, подпапки стали возможными в SSMS 2016.

Осторожные пользователи: вы можете установить SSMS 2016 и продолжать использовать старую. Смотрите примечание [1]ниже.

Оказавшись там, начните использовать решения вместо проектов .


Подкаталог работает так:

Добавление подпапки решения:

  1. Щелкните правой кнопкой мыши элемент решения (корень дерева) и в меню выберите « Добавить» > « Новая папка решения» .
  2. Шаг 1 теперь работает и для любой папки, которую вы добавили.

Добавление сценария SQL:

  • Щелкните правой кнопкой мыши любую папку и в ее меню « Добавить» добавьте существующий файл SQL или новый файл SQL (в списке найдите тип элемента с расширением SQL).

Ваши старые добрые проекты (Bad old projects)

  • Вы по-прежнему можете размещать проекты в своем решении, если считаете, что они полезны по каким-то устаревшим причинам, для размещения соединений и т. Д. Просто добавьте новые или импортируйте существующие проекты в решение.

[1] Что касается модернизации:

  1. SQL Server 2008 - 2016 официально поддерживается SSMS 2016. Дополнительную информацию см. На странице загрузки. Для более старых версий вы можете сохранить ваши любимые старые SSMS, см. Пункт 2 ниже.

    • единственный параметр, который может потребовать вашего внимания, - это Параметры > Обозреватель объектов SQL Server > Сценарий для версии сервера > (установите версию сервера)
  2. Различные версии SSMS хорошо сочетаются друг с другом , т. Е. SSMS 2008 и SSMS 2016 могут быть установлены вместе без проблем - проверено.

miroxlav
источник
Это удобно Стоит отметить, что под капотом SSMS хранит все эти файлы в виде плоской файловой структуры в одном каталоге, поэтому вы не можете иметь файл с одинаковым именем в двух разных папках.
Джон
@Jon - Это не совсем так. На первый взгляд это может показаться странным, но структура файлов и папок, показанная в дереве проекта, не зависит от размещения файлов на диске. На диске он не обязательно должен быть плоским (просто попробуйте сохранить новые файлы в другом месте ...), вы можете распределять их по каталогам по своему усмотрению. Другими словами: храните файлы в любых каталогах в файловой системе, а затем вы можете добавить их в любые виртуальные папки в дереве проекта SSMS. (Если я правильно помню, возможно даже дублирование ссылок.) Недостаток: вам нужно организовать файлы дважды - в директории и в папки проекта.
Miroxlav
6

В SSMS, если вы еще не отображаете оснастку «Обозреватель шаблонов», перейдите в «Меню», «Вид», «Обозреватель шаблонов» (горячая клавиша Ctrl- Alt- T).

Шаблоны загружаются с вашего локального компьютера, из этой папки

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

Вы можете добавлять подпапки по своему усмотрению и даже вкладывать их (через Windows Explorer или SSMS). Если я не ошибаюсь, папки загружаются только один раз при запуске SSMS, поэтому вам может потребоваться перезапустить SSMS, чтобы получить изменения папок из файловой системы.

p / s - этот метод повторно назначает браузер шаблонов для организации сценариев проекта!

孔夫子
источник
Далеко не ответ, но это наименее клёвый хак, предложенный до сих пор! Спасибо, что поделились, я буду держать это открытым еще несколько дней ...
DeepSpace101
4

К сожалению, проекты SSMS не поддерживают подпапки. Если вы говорите о папке по умолчанию, в которую SQL сохраняет данные, да, вы можете создавать там подпапки. Это просто папка на вашем жестком диске. Эта папка по умолчанию находится в папке «C: \ Users {имя пользователя} \ Documents \ SQL Server Management Studio \ Projects».

mrdenny
источник
2

Отсутствие подпапок, безусловно, расстраивает. Я собираюсь попытаться организовать мои вещи в отдельные проекты в одном решении. У каждого есть папка Queries ... Я собираюсь назвать проекты так, как я бы назвал подпапки (если бы я мог их создать!).

Aron
источник
1

В добавление к ответу 3, описанному выше, можно обойти эту ситуацию, повторно назначив шаблоны в C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ SqlWorkbenchProjectItems \ Sql.

Вам нужно будет добавить разрешения для учетных записей пользователей компьютеров для полного контроля. (Щелкните правой кнопкой мыши папку назначения, Свойства, выберите пользователей машины, Изменить и т. Д.)

Даже тогда, как будто Стив Балмер отклонил это решение на перевале. Вы можете сохранить файл там, но когда он открывается в SSMS, он не открывается под именем этого файла .sql, это общее имя. Таким образом, существует все это, чтобы держать ваши запросы, функции, табличные сценарии, sprocs и т. Д. Все организованными.

Отличный ответ, но в Windows 8.1 это исключено.

Лучший ответ, который у меня есть, - это сохранение через SSMS в файловой системе, которая, я думаю, будет соответствовать вложенности файлов .sql. Мне нужно создать проект базы данных в Visual Studio 2013, в котором я могу настроить папки, так как они имеют смысл для моего потока продуктов.

Но я не могу открыть эти запросы через обозреватель сервера в Visual Studio ... однако тогда можно организовать запросы в одном месте, если они находятся в работе, сценарии SPROC, сценарии UDF и т. Д.

Нет никакой IDE для выполнения такого рода проектной работы, и да, по словам другого респондента, это печально.

Немного болтовни и разглагольствования ... другими словами, я могу получить нужную структуру папок с Проектом БД в VS 2013, но если я хочу войти на удаленный сервер, чтобы проверить их, я должен получить доступ к ним файл за файлом из SSMS. Боль в задней части ... Я хочу IDE, которая делает это.

user1585204
источник
0

Я добился прогресса, вручную отредактировав файл проекта SSMS для добавления папок под решением. Откройте файл .ssmssqlproj в текстовом редакторе. Поиск узлов с именем LogicalFolder. Узел Разное - хорошая модель для того, что вам нужно сделать.

Просто скопируйте эти строки и измените имя на папку, которую вы хотите увидеть. Также измените значение 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 находятся в папке «Запросы» в обозревателе решений. Однако они все еще находятся в нужных папках на диске. Так что это шаг в правильном направлении.

Я хочу посмотреть, соответствует ли атрибут «Тип» в файле проекта конкретному расширению файла, и могу ли я выяснить, что это такое. Если я смогу получить нужные расширения, SSMS поместит файлы в нужную папку проекта.

Я могу посмотреть на Visual Studio, чтобы увидеть, как это работает, поскольку SSMS основан на Visual Studio, в соответствии с их заставкой.

Тем не менее, я на полпути там, так что, возможно, один из вас может выяснить, остальные!

RonSanderson
источник
Это не сработало для меня. Не открывается.
Сохам Дасгупта