Il plugin
Red-Gate SQL Prompt per
SQL Server Management Studio offre, tra le altre cose, un set di shortcut per creare comandi al volo. La funzionalità, più nota come
snippet manager, non solo consente di associare ad una semplice sequenza di caratteri un comando o un template anche complesso, bensì permette anche la personalizzazione dei collegamenti stessi.
Un esempio è quello che segue:
Per maggiori informazioni sul prodotto leggere
qui.
Con l'installazione del componente aggiuntivo è già disponibile un set di snippet ma è possibile crearne di nuovi o modificare quelli esistenti. Ogni snippet è salvato su di un file con estensione proprietaria .sqlpromptsnippet e viene salvato sulla folder%USERPROFILE%\AppData\Local\Red Gate\SQL Prompt 5\Snippets.
In ottica di lavoro in team, può risultare molto comodo condividere gli snippet con i nostri collaboratori. Non tanto quelli di default ma quelli che vengono aggiunti al set. Immaginiamo infatti quelli fortemente dedicati al database su cui si sta lavorando, come la creazione di una particolare parametrizzazione di un utente/ruolo oppure il set di opzioni per gli indici e via discorrendo. In quel caso possiamo creare i nostri snippet tramite il manager come segue:
Premendo Save, l'entry verrà aggiunta alla lista degli snippet preesistenti.
In questo caso, come è possibile distribuire a tutti gli item che devono essere condivisi? Personalmente ho deciso di seguire la seguente strada:
- copia del contenuto della cartella
- spostamento del puntatore alla folder per il plugin
1) Dropbox folder
Dopo aver installato dropbox, creare una cartella che verrà condivisa e che conterrà gli snippet. Nell'esempio la chiameremo "Snippets". Condividere con i collaboratori.
2) powershwll script
Dopo che la cartella è stat creata (e condivisa), ho eseguito uno script powershell (che è tranquillamente eseguibile anche sui pc dei collaboratori).
Lo script è il seguente:
#specify the sql prompt folder (registry)
$SQLpromptFolder = "SQL Prompt 5"
#copies the snippet files into the dropboxfolder
$localAppDataSnippets = $env:LOCALAPPDATA + "\Red Gate\" + $SQLpromptFolder + "\Snippets\*.sqlpromptsnippet"
$newSnippetFolder = $env:USERPROFILE + "\Dropbox\Snippets"
Write-Host "Copying *.sqlpromptsnippet files from " + $localAppDataSnippets + " to " + $newSnippetFolder + ".."
Copy-Item $localAppDataSnippets $newSnippetFolder
#registry property
$SQLpromptRegistryFolder = "HKCU:\Software\Red Gate\" + $SQLpromptFolder
Set-Location $SQLpromptRegistryFolder
Set-ItemProperty . "Snippets Folder" $newSnippetFolder
Write-Host "Restart SQL Server Management Studio to apply.."
Quello che fa è semplicemente:
- copia il contenuto della cartella di default di SQL Prompt sulla nuova creata su dropbox
- aggiunge un valore nel registro direttamente nella cartella che anche la documentazione di
Red-Gate indica.
In questo modo, condividendo la folder e lanciando lo script sulle macchine di ogni dev del team, la folder impostata sul SQL Prompt è quella comune. Ogni aggiunta fatta viene recepita dai dev che lavorano in quel team e gli eventuali startup snippet vengono sempre allineati.
NB: questo script lavora solo sulla versione indicata nella variabile $SQLpromptFolder
E' sufficiente cambiare quel valore per puntare alle precedenti/successive release del prodotto, anche se consiglio di dare un'occhiata alla documentazione per capire se la feature è supportata.
Stay Tuned!