1. Wstęp

Poniżej opisany jest sposób uporządkowania szablonów SQL dostępnych w Template Explorer w SQL Server Management Studio 22.5.

Procedura ma na celu:

  • uporządkowanie domyślnych template dostarczonych z SSMS,
  • wydzielenie własnych template administracyjnych,
  • oddzielenie template użytkownika od template wspólnych,
  • zachowanie czytelnej struktury katalogów,
  • ułatwienie backupu oraz odtworzenia konfiguracji po aktualizacji lub reinstalacji SSMS.

2. Jak działa mechanizm template w SSMS

SQL Server Management Studio posiada wbudowany mechanizm szablonów SQL dostępny z poziomu Template Explorer.

Template Explorer można uruchomić z menu:

View -> Template Explorer

lub skrótem klawiaturowym:

Ctrl + Alt + T

SSMS korzysta z dwóch lokalizacji template:

  1. katalogu instalacyjnego SSMS,
  2. katalogu template użytkownika w profilu Windows.

2.1. Katalog źródłowy template SSMS

Domyślne template dostarczone z SSMS znajdują się w katalogu instalacyjnym:

C:\Program Files\Microsoft SQL Server Management Studio 22\Release\Common7\IDE\ SqlWorkbenchProjectItems\Sql

Ten katalog można traktować jako katalog źródłowy dla domyślnych template.

Znajdują się tam standardowe katalogi i pliki .sql dostarczone razem z SQL Server Management Studio.


2.2. Katalog template użytkownika

Template widoczne i używane przez Template Explorer są przechowywane w profilu użytkownika Windows:

C:\Users\UserName\AppData\Roaming\Microsoft\SQL Server Management Studio\22.0\Templates\Sql

Jest to katalog roboczy użytkownika.

W tym miejscu SSMS przechowuje template dostępne dla konkretnego użytkownika systemu Windows.


2.3. Odtwarzanie template użytkownika

Jeżeli katalog template użytkownika zostanie usunięty albo nie istnieje, SSMS może odtworzyć jego zawartość na podstawie katalogu źródłowego z katalogu instalacyjnego.

Oznacza to, że po usunięciu katalogu:

C:\Users\UserName\AppData\Roaming\Microsoft\SQL Server Management Studio\22.0\Templates\Sql

i ponownym uruchomieniu SSMS oraz Template Explorer, struktura template może zostać ponownie utworzona na podstawie zawartości katalogu:

C:\Program Files\Microsoft SQL Server Management Studio 22\Release\Common7\IDE\ SqlWorkbenchProjectItems\Sql

Dzięki temu można uporządkować strukturę w katalogu źródłowym, a następnie wymusić ponowne utworzenie czystej struktury w profilu użytkownika.


3. Proponowana struktura template

Rekomendowana struktura powinna oddzielać trzy typy template:

  1. domyślne template SSMS,
  2. wspólne template administracyjne,
  3. prywatne template użytkownika.

Docelowa struktura widoczna w Template Explorer powinna wyglądać następująco:

Sql
├── Default
├── Maintenance
└── _User


3.1. Katalog Default

Katalog Default powinien zawierać wszystkie oryginalne template dostarczone razem z SSMS.

Przykładowa struktura:

Sql
└── Default
    ├── Aggregate
    ├── Assembly
    ├── Audit
    ├── Azure SQL Database
    ├── Backup
    └── ...

Zastosowanie katalogu Default pozwala zachować wszystkie domyślne template, ale nie powoduje zaśmiecania głównego widoku Template Explorer.

Domyślne template są nadal dostępne, ale znajdują się w jednym uporządkowanym miejscu.


3.2. Katalog Maintenance

Katalog Maintenance powinien zawierać własne, wspólne template administracyjne DBA.

Przykładowe zastosowania:

  • sprawdzanie statusu baz danych,
  • sprawdzanie backupów,
  • kontrola jobów SQL Agent,
  • diagnostyka blokad,
  • diagnostyka sesji,
  • kontrola indeksów,
  • kontrola statystyk,
  • podstawowe skrypty maintenance,
  • kontrola uprawnień,
  • skrypty DBCC.

Rekomendowana struktura:

Sql
└── Maintenance
    ├── Backup
    ├── DBCC
    ├── Indexes
    ├── Statistics
    ├── Jobs
    ├── Sessions
    ├── Blocking
    └── Permissions

Przykładowe pliki:

Sql
└── Maintenance
    ├── Backup
    │   ├── Check last backups.sql
    │   └── Check backup history.sql
    │
    ├── Indexes
    │   ├── Check fragmentation.sql
    │   └── Check index usage.sql
    │
    ├── Statistics
    │   ├── Check stale statistics.sql
    │   └── Update statistics.sql
    │
    └── Sessions
        ├── Check active sessions.sql
        └── Check blocking.sql

Katalog Maintenance może być przechowywany w katalogu źródłowym SSMS, ale zalecane jest utrzymywanie jego głównej kopii również poza katalogiem instalacyjnym, na przykład w repozytorium Git.


3.3. Katalog _User

Katalog _User powinien służyć wyłącznie do prywatnych template użytkownika.

Powinien być tworzony z poziomu Template Explorer albo bezpośrednio w katalogu użytkownika:

C:\Users\UserName\AppData\Roaming\Microsoft\SQL Server Management Studio\22.0\Templates\Sql\_User

Katalog _User powinien zawierać drobne, robocze, prywatne szablony użytkownika.

Przykład:

Sql
└── _User
    ├── Test
    ├── Temp
    ├── Personal
    ├── robocze zapytanie.sql
    └── szybki check.sql

Nie zaleca się tworzenia katalogu _User w katalogu instalacyjnym SSMS, ponieważ prywatne template użytkownika powinny pozostać w profilu użytkownika Windows.


4. Rekomendowana struktura końcowa

Docelowo Template Explorer powinien prezentować strukturę:

Sql
├── Default
|   ├── Aggregate
│   ├── Assembly
│   ├── Audit
│   ├── Azure SQL Database
│   ├── Backup
│   └── ...
│
├── Maintenance
│   ├── Backup
│   ├── DBCC
│   ├── Indexes
│   ├── Statistics
│   ├── Jobs
│   ├── Sessions
│   ├── Blocking
│   └── Permissions
│
└── _User
    ├── Test
    ├── Temp
    └── Personal

Znaczenie katalogów:

KatalogLokalizacja głównaPrzeznaczenie
Defaultkatalog instalacyjny SSMSdomyślne template dostarczone z SSMS
Maintenancekatalog instalacyjny SSMS oraz repozytorium zewnętrznewspólne template administracyjne DBA
_Userprofil użytkownika Windowsprywatne template użytkownika

5. Procedura uporządkowania template

5.1. Zamknięcie SSMS

Przed rozpoczęciem zmian należy zamknąć wszystkie uruchomione instancje SQL Server Management Studio.


5.2. Wykonanie kopii katalogu źródłowego

Przed modyfikacją katalogu instalacyjnego należy wykonać jego kopię.

Katalog źródłowy:

C:\Program Files\Microsoft SQL Server Management Studio 22\Release\Common7\IDE\ SqlWorkbenchProjectItems\Sql

Przykładowa kopia:

C:\Program Files\Microsoft SQL Server Management Studio 22\Release\Common7\IDE\ SqlWorkbenchProjectItems\Sql_BACKUP_ORIGINAL

Kopia pozwala przywrócić pierwotną strukturę template w przypadku pomyłki lub problemów po zmianach.


5.3. Utworzenie katalogu Default

W katalogu:

C:\Program Files\Microsoft SQL Server Management Studio 22\Release\Common7\IDE\ SqlWorkbenchProjectItems\Sql

należy utworzyć katalog:

Default


5.4. Przeniesienie domyślnych template do katalogu Default

Wszystkie oryginalne katalogi template SSMS należy przenieść do katalogu:

C:\Program Files\Microsoft SQL Server Management Studio 22\Release\Common7\IDE\ SqlWorkbenchProjectItems\Sql\Default

Po wykonaniu tej operacji struktura powinna wyglądać przykładowo tak:

Sql
└── Default
    ├── Aggregate
    ├── Assembly
    ├── Audit
    ├── Azure SQL Database
    ├── Backup
    └── ...


5.5. Utworzenie katalogu Maintenance

W katalogu źródłowym SSMS należy utworzyć katalog:

Maintenance

Pełna ścieżka:

C:\Program Files\Microsoft SQL Server Management Studio 22\Release\Common7\IDE\ SqlWorkbenchProjectItems\Sql\Maintenance

Do tego katalogu można dodawać własne template administracyjne.

Przykład:

Sql
├── Default
└── Maintenance
    ├── Backup
    ├── DBCC
    ├── Indexes
    ├── Statistics
    ├── Jobs
    ├── Sessions
    └── Blocking


5.6. Wyczyszczenie katalogu template użytkownika

Aby SSMS utworzył czystą strukturę template w profilu użytkownika, można usunąć dotychczasowy katalog:

C:\Users\UserName\AppData\Roaming\Microsoft\SQL Server Management Studio\22.0\Templates\Sql

Przed usunięciem zalecane jest wykonanie kopii, szczególnie jeżeli wcześniej znajdowały się tam własne template.

Przykładowa kopia:

C:\Users\UserName\AppData\Roaming\Microsoft\SQL Server Management Studio\22.0\ Templates\Sql_BACKUP

Po wykonaniu kopii można usunąć katalog:

C:\Users\UserName\AppData\Roaming\Microsoft\SQL Server Management Studio\22.0\Templates\Sql

albo usunąć wyłącznie jego zawartość.


5.7. Uruchomienie SSMS i Template Explorer

Po zmianach należy uruchomić SQL Server Management Studio.

Następnie należy otworzyć Template Explorer:

View -> Template Explorer

lub:

Ctrl + Alt + T

SSMS powinien odtworzyć katalog template użytkownika na podstawie katalogu źródłowego.

Oczekiwany efekt:

Sql
├── Default
└── Maintenance


5.8. Utworzenie katalogu _User

Katalog _User należy utworzyć z poziomu Template Explorer albo bezpośrednio w katalogu użytkownika.

Docelowa lokalizacja:

C:\Users\UserName\AppData\Roaming\Microsoft\SQL Server Management Studio\22.0\Templates\Sql\_User

Po tej operacji struktura powinna wyglądać następująco:

Sql
├── Default
├── Maintenance
└── _User

Katalog _User powinien służyć wyłącznie do prywatnych, roboczych template użytkownika.


6. Backup i repozytorium

6.1. Dlaczego backup jest wymagany

Zmiany wykonywane są w dwóch różnych miejscach:

  1. w katalogu instalacyjnym SSMS,
  2. w profilu użytkownika Windows.

Obie lokalizacje powinny być traktowane inaczej.

Katalog instalacyjny SSMS może zostać zmieniony przez instalator SSMS.

Katalog użytkownika może zostać utracony przy uszkodzeniu profilu, migracji użytkownika, reinstalacji systemu albo ręcznym czyszczeniu katalogów AppData.


6.2. Backup katalogu źródłowego SSMS

Backupowi powinien podlegać katalog:

C:\Program Files\Microsoft SQL Server Management Studio 22\Release\Common7\IDE\SqlWorkbenchProjectItems\Sql

Można wykonać kopię do lokalizacji tymczasowej lub administracyjnej, na przykład:

D:\DBA\Backup\SSMS-Templates\Sql


6.3. Backup katalogu _User

Backupowi powinien podlegać również katalog prywatnych template użytkownika:

C:\Users\UserName\AppData\Roaming\Microsoft\SQL Server Management Studio\22.0\ Templates\Sql\_User

Ten katalog zawiera prywatne template, które nie muszą istnieć w katalogu instalacyjnym SSMS.


6.4. Przechowywanie template w repozytorium Git

Zalecane jest utrzymywanie własnych template administracyjnych w repozytorium Git.

Repozytorium może mieć przykładową strukturę:

SSMS-Templates
├── README.md
├── Default-Structure-Info.md
├── Maintenance
│   ├── Backup
│   ├── DBCC
│   ├── Indexes
│   ├── Statistics
│   ├── Jobs
│   ├── Sessions
│   └── Blocking
└── User-Examples
    └── README.md

Repozytorium powinno przechowywać przede wszystkim katalog:

Maintenance

Opcjonalnie można przechowywać również przykładowe template użytkownika, ale bez danych wrażliwych, nazw środowisk produkcyjnych, loginów, haseł, connection stringów albo nazw klientów.


6.5. Przykładowy model utrzymania

Rekomendowany model utrzymania:

Repozytorium Git
└── Maintenance
    ├── Backup
    ├── DBCC
    ├── Indexes
    ├── Statistics
    ├── Jobs
    ├── Sessions
    └── Blocking

Katalog roboczy SSMS:

C:\Program Files\Microsoft SQL Server Management Studio 22\Release\Common7\IDE\ SqlWorkbenchProjectItems\Sql
├── Default
└── Maintenance

Katalog prywatny użytkownika:

C:\Users\UserName\AppData\Roaming\Microsoft\SQL Server Management Studio\22.0\Templates\Sql\_User

W tym modelu:

  • katalog Maintenance jest wersjonowany w Git,
  • katalog Maintenance może być kopiowany do katalogu SSMS po instalacji lub aktualizacji,
  • katalog _User pozostaje prywatny i lokalny dla użytkownika,
  • katalog Default zawiera oryginalne template SSMS.

7. Ważne ryzyko po aktualizacji SSMS

Katalog:

C:\Program Files\Microsoft SQL Server Management Studio 22\Release\Common7\IDE\ SqlWorkbenchProjectItems\Sql

jest częścią instalacji SQL Server Management Studio.

Oznacza to, że podczas:

  • aktualizacji SSMS,
  • naprawy instalacji SSMS,
  • reinstalacji SSMS,
  • instalacji kolejnej wersji SSMS,

zmodyfikowany katalog Sql może zostać nadpisany, przywrócony do ustawień domyślnych albo całkowicie usunięty i utworzony ponownie przez instalator.

W praktyce może to oznaczać utratę katalogów:

Default
Maintenance

albo przywrócenie pierwotnej, nieuporządkowanej struktury template.

Z tego powodu nie należy traktować katalogu w Program Files jako jedynego miejsca przechowywania własnych template.

Katalog Maintenance powinien mieć kopię źródłową poza katalogiem instalacyjnym SSMS, najlepiej w repozytorium Git.


8. Kontrola po aktualizacji SSMS

Po każdej aktualizacji SSMS należy sprawdzić katalog:

C:\Program Files\Microsoft SQL Server Management Studio 22\Release\Common7\IDE\ SqlWorkbenchProjectItems\Sql

Należy zweryfikować, czy nadal istnieje struktura:

Sql
├── Default
└── Maintenance

Następnie należy sprawdzić katalog użytkownika:

C:\Users\UserName\AppData\Roaming\Microsoft\SQL Server Management Studio\22.0\Templates\Sql

Oczekiwana struktura:

Sql
├── Default
├── Maintenance
└── _User

Jeżeli aktualizacja SSMS przywróciła domyślne katalogi, należy ponownie:

  1. wykonać backup aktualnego katalogu,
  2. odtworzyć katalog Default,
  3. przenieść domyślne template do Default,
  4. odtworzyć katalog Maintenance z repozytorium,
  5. w razie potrzeby wyczyścić katalog template użytkownika,
  6. uruchomić SSMS i Template Explorer,
  7. sprawdzić strukturę końcową.

9. Dobre praktyki

9.1. Nie przechowywać prywatnych template w katalogu instalacyjnym

Template prywatne powinny znajdować się w:

C:\Users\UserName\AppData\Roaming\Microsoft\SQL Server Management Studio\22.0\ Templates\Sql\_User

Nie powinny być przechowywane w:

C:\Program Files\Microsoft SQL Server Management Studio 22\Release\Common7\IDE\ SqlWorkbenchProjectItems\Sql


9.2. Nie przechowywać jedynej kopii template w Program Files

Katalog Program Files nie powinien być traktowany jako trwałe repozytorium template.

Własne template administracyjne powinny być przechowywane również poza katalogiem instalacyjnym, najlepiej w Git.


9.3. Nie usuwać katalogu użytkownika bez backupu

Przed usunięciem katalogu:

C:\Users\UserName\AppData\Roaming\Microsoft\SQL Server Management Studio\22.0\Templates\Sql

należy wykonać jego kopię, jeżeli istnieje możliwość, że znajdują się tam własne template.


9.4. Stosować nazwy katalogów porządkujące widok

Zalecane są proste i jednoznaczne nazwy katalogów:

Default
Maintenance
_User

Przedrostek _ w nazwie _User powoduje, że katalog prywatnych template jest łatwo rozpoznawalny i zwykle widoczny w górnej części listy.


9.5. Nie umieszczać danych wrażliwych w template

W template nie powinno się zapisywać:

  • haseł,
  • loginów technicznych,
  • connection stringów,
  • nazw klientów,
  • danych osobowych,
  • danych produkcyjnych,
  • tokenów,
  • sekretów,
  • kluczy API.

Template powinny zawierać kod uniwersalny albo parametryzowany.


10. Podsumowanie

Uporządkowanie Template Explorer w SSMS 22.5 przez zastosowanie katalogów:

Default
Maintenance
_User

jest praktycznym i czytelnym rozwiązaniem.

Rekomendowany podział jest następujący:

KatalogPrzeznaczenie
Defaultdomyślne template dostarczone z SSMS
Maintenancewspólne template administracyjne DBA
_Userprywatne template użytkownika

Należy jednak pamiętać, że katalog:

C:\Program Files\Microsoft SQL Server Management Studio 22\Release\Common7\IDE\ SqlWorkbenchProjectItems\Sql

jest częścią instalacji SSMS i może zostać nadpisany lub usunięty podczas aktualizacji, naprawy instalacji albo reinstalacji SSMS.

Dlatego katalog Maintenance powinien być przechowywany również poza katalogiem instalacyjnym, najlepiej w repozytorium Git.

Katalog _User powinien pozostać w profilu użytkownika:

C:\Users\UserName\AppData\Roaming\Microsoft\SQL Server Management Studio\22.0\ Templates\Sql\_User

i powinien być backupowany osobno.

Takie podejście zapewnia porządek, czytelność, łatwe odtworzenie konfiguracji oraz separację template domyślnych, administracyjnych i prywatnych.


Dariusz Brejnak

Od prawie trzydziestu lat jest pasjonatem informatyki, a zwłaszcza dziedzin dotyczących baz danych, hurtowni danych oraz ogólnie rozumianej tematyki BI. Jego druga pasja to fotografia http://dariuszbrejnak.pl

1 komentarz

Opcjonalne użycie symlink/junction dla template w SSMS 22.5 – Dariusz Brejnak · 24 kwietnia 2026 o 13:04

[…] Jest to kontynuacja artykułu: Porządkowanie Template Explorer w SQL Server Management Studio 22.5 […]

Możliwość komentowania została wyłączona.