SQL Server Management Studio 2012: come avere le cartelle nel progetto SSMS?


17

Sto usando SSMS 2012 per parlare con i server SQL 2012 e Azure SQL che usiamo. Devo ammettere che non sono un esperto di SQL, quindi ho salvato la maggior parte dei miei script SQL per riferimento futuro. Ho rapidamente incontrato circa 20 script .SQL nel progetto SSMS e vivono tutti nella stessa cartella "Query".

Esiste un modo per creare "sottocartelle" nel progetto in modo da poter organizzare correttamente i miei script? In che modo la maggior parte delle altre persone organizza i propri script? Sono abbastanza sicuro che se questo bug un principiante come me, deve essere un vero problema per l'amministratore reale (con potenzialmente centinaia di script?)


2
Ho un amico che conserva tutti i suoi script in un .sqlfile gigante . In questo modo devi solo tenere traccia di un file.
Max Vernon,

Conosco persone che le tengono semplicemente in una cartella sincronizzata con il loro account DropBox. Quindi quelli che lo salvano anche su SkyDrive. Non sono davvero uno che usa i progetti in SSMS.
Shawn Melton,

È qui che Script Manager potrebbe tornare utile, se ti abitui. Anche se mi è piaciuto, per me non ha fatto clic. Preferisco solo salvare i miei script localmente, in alcune cartelle di cui eseguo il backup su DropBox. Non mi sono mai piaciuti i progetti SSMS.
Marian,

puoi usare SQLTreeo, ecco lo strumento: sqltreeo.com

Risposte:


7

Infine, le sottocartelle sono state rese possibili in SSMS 2016.

Utenti cauti: è possibile installare SSMS 2016 e continuare a utilizzare quello precedente. Vedi nota [1]sotto.

Una volta lì, inizia a utilizzare soluzioni anziché progetti .


La sottocartella funziona in questo modo:

Aggiunta di una sottocartella di soluzione:

  1. Fare clic con il tasto destro del mouse sull'elemento della soluzione (radice dell'albero) e dal menu selezionare Aggiungi > Cartella nuova soluzione .
  2. Passo 1 ora funziona anche su qualsiasi cartella aggiunta.

Aggiunta di script SQL:

  • Fare clic con il tasto destro del mouse su qualsiasi cartella e da Aggiungi menu , aggiungi il file SQL esistente o il nuovo file SQL (nell'elenco, trova il tipo di elemento con estensione SQL).

I tuoi buoni vecchi progetti (Bad vecchi progetti)

  • Puoi comunque ospitare progetti nella tua soluzione se li vedi utili per alcuni motivi legacy, per l'hosting di connessioni, ecc. Basta aggiungere nuovi o importare progetti esistenti nella soluzione.

[1] Per quanto riguarda l'aggiornamento:

  1. SQL Server 2008-2016 sono ufficialmente supportati da SSMS 2016. Ulteriori informazioni nella pagina di download. Per le versioni precedenti, è possibile conservare il vecchio SSMS preferito, vedere il punto 2 di seguito.

    • l'unica impostazione che potrebbe richiedere attenzione è Opzioni > Esplora oggetti di SQL Server > Script per la versione del server > (imposta la versione del server)
  2. Diverse versioni di SSMS convivono bene , vale a dire che SSMS 2008 e SSMS 2016 possono essere installati insieme senza problemi - testati.


È utile. Vale la pena notare che SSMS sta memorizzando tutti questi file in una struttura di file piatta in una singola directory, quindi non è possibile avere un file con lo stesso nome in due cartelle diverse.
Jon,

@Jon - Questo non è del tutto vero. A prima vista può sembrare confuso, ma la struttura di file e cartelle mostrata nella struttura del progetto è indipendente dalla loaction dei file sul disco. Sul disco, non è necessario che sia piatto (basta provare a salvare nuovi file altrove ...), puoi averli distribuiti nelle directory come desideri. In altre parole: conservare i file in qualsiasi directory nel file system e quindi è possibile aggiungerli in qualsiasi cartella virtuale nell'albero del progetto SSMS. (Se ricordo bene, è possibile anche la duplicazione dei riferimenti.) Unico inconveniente: è necessario organizzare i file due volte - in dirs e nelle cartelle di progetto.
miroxlav,

6

In SSMS, se non si sta già visualizzando lo snap-in Browser modello, selezionare Menu, Visualizza, Esplora modelli (tasto di scelta rapida Ctrl - Alt- T).

I modelli vengono caricati dal tuo computer locale, da questa cartella

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

Puoi aggiungere sottocartelle a tuo piacimento e persino nidificarle (tramite Windows Explorer o SSMS). Se non sbaglio, le cartelle vengono caricate una sola volta all'avvio di SSMS, quindi potrebbe essere necessario riavviare SSMS per raccogliere le modifiche alle cartelle dal filesystem.

p / s - Questo metodo riutilizza il browser dei modelli allo scopo di organizzare gli script di progetto!


Lungi dall'essere una risposta, ma questo è il trucco meno ingombrante suggerito finora! Grazie per la condivisione, lo terrò aperto per qualche altro giorno ...
DeepSpace101

4

Purtroppo i progetti SSMS non supportano le sottocartelle. Se stai parlando della cartella predefinita in cui SQL salva gli oggetti, sì, puoi creare sottocartelle. Questa è solo una cartella sul tuo disco rigido. Tale cartella si trova in "C: \ Users {nome utente} \ Documents \ SQL Server Management Studio \ Projects" per impostazione predefinita.


2

La mancanza di sottocartelle è certamente frustrante. Proverò a organizzare le mie cose in progetti separati nella stessa soluzione. Ognuno ha una cartella Query ... Vado a dare un nome ai progetti nel modo in cui nominerei le sottocartelle (se potessi crearli!).


1

Aggiungendo alla risposta 3, sopra, aggirare la situazione riutilizzando i modelli in C: \ Programmi (x86) \ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ SqlWorkbenchProjectItems \ Sql.

Dovrai aggiungere le autorizzazioni agli account utente delle macchine per il controllo completo. (Fare clic con il tasto destro sulla cartella di destinazione, Proprietà, selezionare gli utenti della macchina, Modifica, ecc.)

Anche allora è come se Steve Balmer avesse guidato questa soluzione al passo. È possibile salvare un file lì, ma quando viene aperto in SSMS, non viene aperto con il nome del file .sql, è un nome generico. Quindi c'è tutto questo rigmarole solo per mantenere tutte le tue domande, funzioni, script di tabella, sprocs, ecc.

Ottima risposta ma su Windows 8.1, è stato precluso.

La migliore risposta che ho è salvare tramite SSMS nel file system che penso rispetterà la nidificazione dei file .sql. Devo creare un progetto di database in Visual Studio 2013, in cui posso impostare le cartelle in modo che abbiano senso per il mio flusso di prodotti.

Ma non riesco ad aprire queste query tramite Esplora server in Visual Studio ... tuttavia è quindi possibile organizzare le query in un unico posto se sono In Work, Script SPROC, Script UDF, ecc.

Non esiste un IDE per fare questo tipo di lavoro di progetto e sì, nelle parole di un altro intervistato qui, è triste.

Vagando e rantolando un po 'qui ... in altre parole posso ottenere la struttura di cartelle che voglio con un progetto DB in VS 2013 ma se voglio accedere a un server remoto per testarli, devo accedervi file per file da SSMS. Dolore nella parte posteriore ... Voglio un IDE che lo faccia.


0

Ho fatto progressi modificando manualmente il file di progetto SSMS per aggiungere cartelle sotto la soluzione. Apri il file .ssmssqlproj in un editor di testo. Cerca i nodi chiamati LogicalFolder. Il nodo Varie è un buon modello per ciò che devi fare.

Copia queste righe e modifica il nome nella cartella che vuoi vedere. Cambia anche il valore Tipo in qualcosa di unico. Ecco cosa ho fatto.

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

ASSICURARSI DI MANTENERE UNA COPIA DEL FILE DI PROGETTO (.ssmssqlproj). Se sbagli la modifica, come ho fatto alcune volte, il progetto non si aprirà. Questo non sarà così grave se hai installato il componente aggiuntivo TFS e stai controllando i file del tuo progetto: puoi semplicemente scartare le modifiche. In caso contrario, assicurati di fare una copia.

Quindi creo cartelle sotto la soluzione per abbinare i nomi delle cartelle logiche. Successivamente ho creato uno script di definizione della tabella e uno script di definizione del tipo di tabella definito dall'utente e li ho salvati nelle rispettive cartelle. Sono apparsi nella cartella "Varie" in Esplora soluzioni, quindi li ho trascinati nelle cartelle appropriate.

Questo è dove le cose si sono rotte. Perché, penso, tutte le stored procedure, le funzioni, la tabella e il tipo si trovano in file con estensione .sql. Poiché sono file .sql, sono stati inseriti nella cartella Query in Esplora soluzioni. Tuttavia, sono ancora fisicamente nelle giuste cartelle sul disco. Quindi questo è un passo nella giusta direzione.

Voglio vedere se l'attributo "Tipo" nel file di progetto corrisponde a un'estensione di file specifica e se riesco a capire quali siano. Se riesco a ottenere le estensioni giuste, SSMS inserirà i file nella cartella di progetto corretta.

Potrei guardare Visual Studio per vedere come funziona, poiché SSMS si basa su Visual Studio, in base alla loro schermata iniziale.

Tuttavia, sono a metà strada, quindi forse uno di voi può capire il resto!


Questo non ha funzionato per me. Non si apre.
Soham Dasgupta,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.