SQL Server Management Studio 2012: Jak mieć foldery w projekcie SSMS?

17

Korzystam z SSMS 2012, aby rozmawiać z serwerem SQL 2012 i serwerami Azure SQL, których używamy. Przyznaję, że nie jestem ekspertem od SQL, dlatego zapisuję większość moich skryptów SQL na przyszłość. Szybko natrafiłem na około 20 skryptów .SQL w projekcie SSMS i wszystkie one mieszkają w tym samym folderze „Zapytania”.

Czy istnieje sposób, aby utworzyć „podfoldery” w projekcie, aby poprawnie zorganizować swoje skrypty? W jaki sposób większość innych ludzi organizuje swoje skrypty? Jestem prawie pewien, że jeśli to powoduje błędy w nowicjacie takim jak ja, to musi być prawdziwy problem dla prawdziwego administratora (z potencjalnie setkami skryptów?)

DeepSpace101
źródło
2
Mam przyjaciela, który trzyma wszystkie swoje skrypty w jednym wielkim .sqlpliku. W ten sposób musisz tylko śledzić jeden plik.
Max Vernon
Znam ludzi, którzy po prostu trzymają ich w folderze, który jest zsynchronizowany z ich kontem DropBox. Następnie te, które zapisują go również na SkyDrive. Tak naprawdę nie jestem kimś, kto korzysta z projektów w SSMS.
Tutaj przydaje się Script Manager , jeśli się do tego przyzwyczaisz. Chociaż mi się podobało, dla mnie to trochę nie kliknęło. Wolę zapisywać skrypty lokalnie, w niektórych folderach, których kopię zapasową wykonuję na DropBox. Nigdy też nie lubiłem projektów SSMS.
Marian
możesz użyć SQLTreeo, oto narzędzie: sqltreeo.com

Odpowiedzi:

7

Wreszcie, podfoldery stały się możliwe w SSMS 2016.

Ostrożni użytkownicy: możesz zainstalować SSMS 2016 i nadal używać starego. Uwaga [1]poniżej.

Tam zacznij używać rozwiązań zamiast projektów .


Podfolderowanie działa w następujący sposób:

Dodawanie podfolderu rozwiązania:

  1. Kliknij prawym przyciskiem myszy element rozwiązania (katalog główny drzewa) iz menu wybierz Dodaj > Nowy folder rozwiązań .
  2. Krok 1 działa teraz również na każdym dodanym folderze.

Dodawanie skryptu SQL:

  • Kliknij dowolny folder prawym przyciskiem myszy iz menu Dodaj dodaj istniejący plik SQL lub nowy plik SQL (na liście znajdź typ elementu, który ma rozszerzenie SQL).

Twoje dobre stare projekty (złe stare projekty)

  • Nadal możesz hostować projekty w swoim rozwiązaniu, jeśli uznasz, że są one korzystne z pewnych wcześniejszych powodów, do obsługi połączeń itp. Wystarczy dodać nowe lub zaimportować istniejące projekty do rozwiązania.

[1] W odniesieniu do aktualizacji:

  1. SQL Server 2008-2016 są oficjalnie obsługiwane przez SSMS 2016. Zobacz więcej informacji na stronie pobierania. W przypadku starszych wersji możesz zachować swoje ulubione stare SSMS, patrz punkt 2 poniżej.

    • jedynym ustawieniem, które może wymagać Twojej uwagi, są Opcje > Eksplorator obiektów SQL Server > Skrypt dla wersji serwera > (ustaw wersję serwera)
  2. Różne wersje SSMS żyją dobrze razem , tzn. Możesz mieć SSMS 2008 i SSMS 2016 zainstalowane razem bez problemów - przetestowane.

miroxlav
źródło
To jest przydatne. Warto zauważyć, że pod maską SSMS przechowuje wszystkie te pliki w płaskiej strukturze plików w jednym katalogu, więc nie możesz mieć pliku o tej samej nazwie w dwóch różnych folderach.
Jon
@Jon - To nie do końca prawda. Na pierwszy rzut oka może to wydawać się mylące, ale struktura plików i folderów pokazana w drzewie projektu jest niezależna od braku plików na dysku. Na dysku nie musi być płaski (po prostu spróbuj zapisać nowe pliki w innym miejscu ...), możesz je rozmieścić w katalogach, jak chcesz. Innymi słowy: przechowuj pliki w dowolnych katalogach w systemie plików, a następnie możesz dodać je do dowolnych wirtualnych folderów w drzewie projektu SSMS. (Jeśli dobrze pamiętam, możliwe jest nawet powielanie referencji.) Minusem: musisz dwukrotnie organizować pliki - w katalogach i folderach projektu.
miroxlav
6

W SSMS, jeśli jeszcze nie wyświetlasz przystawki Przeglądarka szablonów, przejdź do Menu, Widok, Eksplorator szablonów (skrót klawiszowy Ctrl- Alt- T).

Szablony są ładowane z komputera lokalnego, z tego folderu

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

Możesz dodawać podfoldery według własnego uznania, a nawet zagnieżdżać je (za pomocą Eksploratora Windows lub SSMS). Jeśli się nie mylę, foldery są ładowane tylko raz przy każdym uruchomieniu SSMS, więc może być konieczne ponowne uruchomienie SSMS, aby pobrać zmiany folderów z systemu plików.

p / s - Ta metoda zmienia przeznaczenie przeglądarki szablonów w celu organizowania skryptów projektu!

孔夫子
źródło
Daleki od odpowiedzi, ale jest to najmniej niechciany hack sugerowany do tej pory! Dzięki za udostępnienie, pozostanę otwarty przez kilka kolejnych dni ...
DeepSpace101
4

Niestety projekty SSMS nie obsługują podfolderów. Jeśli mówisz o domyślnym folderze, w którym SQL zapisuje pliki, tak, możesz utworzyć tam podfoldery. To tylko folder na dysku twardym. Folder ten domyślnie znajduje się w folderze „C: \ Users {nazwa użytkownika} \ Documents \ SQL Server Management Studio \ Projects”.

mrdenny
źródło
2

Brak podfolderów jest z pewnością frustrujący. Spróbuję uporządkować swoje rzeczy w osobne projekty w tym samym rozwiązaniu. Każdy z nich ma folder Zapytania ... Zamierzam nazwać projekty tak, jak nazwałbym podfoldery (gdybym mógł je utworzyć!).

Aron
źródło
1

Dodając do powyższej odpowiedzi 3, obejście sytuacji przez ponowne wybranie szablonów w C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ SqlWorkbenchProjectItems \ Sql.

Będziesz musiał dodać uprawnienia do kont użytkowników komputerów w celu uzyskania pełnej kontroli. (Kliknij prawym przyciskiem myszy folder docelowy, Właściwości, wybierz użytkowników urządzenia, Edytuj itp.)

Nawet wtedy to tak, jakby Steve Balmer kierował tym rozwiązaniem na przełęczy. Możesz tam zapisać plik, ale kiedy jest otwarty w SSMS, nie jest otwierany pod nazwą tego pliku .sql, jest to nazwa ogólna. Jest więc cały ten rygor, aby uporządkować zapytania, funkcje, skrypty tabel, sproki itp.

Świetna odpowiedź, ale w Windows 8.1 została wykluczona.

Najlepsza odpowiedź, jaką mam, to zapisywanie za pośrednictwem SSMS do systemu plików, który, jak sądzę, uszanuje zagnieżdżanie plików .sql. Muszę utworzyć projekt bazy danych w programie Visual Studio 2013, w którym mogę skonfigurować foldery, które mają sens dla przepływu mojego produktu.

Ale nie mogę otworzyć tych zapytań za pomocą Eksploratora serwera w Visual Studio ... jednak możliwe jest zorganizowanie zapytań w jednym miejscu, jeśli są w pracy, skrypty SPROC, skrypty UDF itp.

Nie ma IDE do wykonywania tego rodzaju prac projektowych i tak, słowami innego respondenta tutaj, to smutne.

Trochę tu włóczę i ranting ... innymi słowy mogę uzyskać strukturę folderów, którą chcę z DB Project w VS 2013, ale jeśli chcę zalogować się na zdalnym serwerze, aby je przetestować, muszę uzyskać do nich dostęp plik po pliku z SSMS. Ból z tyłu ... Chcę IDE, które to robi.

użytkownik1585204
źródło
0

Poczyniłem postępy, ręcznie edytując plik projektu SSMS, aby dodać foldery pod rozwiązaniem. Otwórz plik .ssmssqlproj w edytorze tekstu. Wyszukaj węzły o nazwie LogicalFolder. Węzeł Różne to dobry model do tego, co musisz zrobić.

Po prostu skopiuj te linie i zmień nazwę na folder, który chcesz zobaczyć. Zmień także wartość Type na coś unikalnego. Oto co zrobiłem.

<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>

UPEWNIJ SIĘ, ŻEBY ZACHOWAĆ KOPIĘ PLIKU PROJEKTU (.ssmssqlproj). Jeśli popsuniesz edycję, tak jak kilka razy, projekt się nie otworzy. Nie będzie tak źle, jeśli zainstalowałeś dodatek TFS i sprawdzasz pliki projektu - możesz po prostu odrzucić zmiany. Ale jeśli nie, upewnij się, że wykonałeś kopię.

Następnie tworzę foldery pod rozwiązaniem, aby pasowały do ​​logicznych nazw folderów. Następnie utworzyłem skrypt definicji tabeli i skrypt definicji tabeli zdefiniowany przez użytkownika i zapisałem je w odpowiednich folderach. Pojawiły się w folderze „Różne” w eksploratorze rozwiązań, więc przeciągnąłem je do odpowiednich folderów.

To tutaj wszystko się zepsuło. Ponieważ myślę, że wszystkie procedury składowane, funkcje, tabela i typ znajdują się w plikach z rozszerzeniem .sql. Ponieważ są to pliki .sql, zostały one umieszczone w folderze Zapytania w eksploratorze rozwiązań. Jednak nadal znajdują się fizycznie w odpowiednich folderach na dysku. To jest krok we właściwym kierunku.

Chcę sprawdzić, czy atrybut „Typ” w pliku projektu odpowiada konkretnemu rozszerzeniu pliku i czy mogę dowiedzieć się, jakie to są. Jeśli mogę uzyskać odpowiednie rozszerzenia, SSMS umieści pliki w odpowiednim folderze projektu.

Mogę spojrzeć na Visual Studio, aby zobaczyć, jak to działa, ponieważ SSMS opiera się na Visual Studio, zgodnie z ich ekranem powitalnym.

Jestem jednak w połowie drogi, więc może jeden z was wymyśli resztę!

RonSanderson
źródło
To mi nie zadziałało. Nie otwiera się.
Soham Dasgupta