SQL Server Management Studio 2012: como ter pastas no projeto SSMS?

17

Estou usando o SSMS 2012 para conversar com os servidores SQL Server 2012 e Azure SQL que usamos. Eu admito que não sou especialista em SQL, por isso tenho guardado a maioria dos meus scripts SQL para referência futura. Eu rapidamente encontrei 20 scripts .SQL no projeto SSMS e todos eles estão vivendo na mesma pasta 'Consultas'.

Existe uma maneira de criar "subpastas" no projeto para organizar meus scripts corretamente? Como a maioria das pessoas mantém seus scripts organizados? Tenho certeza de que se isso incomoda um iniciante como eu, deve ser um problema real para o administrador real (com potencialmente centenas de scripts?)

DeepSpace101
fonte
2
Eu tenho um amigo que mantém todos os seus scripts em um .sqlarquivo gigante . Dessa forma, você só precisa acompanhar um único arquivo.
Max Vernon
Conheço pessoas que apenas os mantêm em uma pasta sincronizada com a conta do DropBox. Depois, os que o salvam no SkyDrive também. Eu realmente não sou o único a usar os projetos no SSMS.
Shawn Melton
É aqui que o Script Manager pode ser útil, se você se acostumar. Embora eu tenha gostado, para mim não deu certo. Prefiro salvar meus scripts localmente, em algumas pastas em que faço backup no DropBox. Também nunca gostei de projetos SSMS.
Marian
você pode usar o SQLTreeo, aqui está a ferramenta: sqltreeo.com

Respostas:

7

Por fim, as subpastas foram possíveis no SSMS 2016.

Usuários cautelosos: você pode instalar o SSMS 2016 e continuar usando o antigo. Veja a nota [1]abaixo.

Uma vez lá, comece a usar soluções em vez de projetos .


A subpasta funciona assim:

Adicionando subpasta solução:

  1. Clique com o botão direito do mouse no item da solução (raiz da árvore) e, no menu, selecione Adicionar > Nova Pasta de Solução .
  2. A etapa 1 agora também funciona em qualquer pasta que você adicionou.

Adicionando script SQL:

  • Clique com o botão direito do mouse em qualquer pasta e, no menu Adicionar , adicione um arquivo SQL existente ou um novo arquivo SQL (na lista, localize o tipo de item que possui extensão SQL).

Seus bons projetos antigos (maus projetos antigos)

  • Você ainda pode hospedar projetos em sua solução se os considerar benéficos por alguns motivos herdados, para hospedagem de conexões etc. Basta adicionar novos ou importar projetos existentes na solução.

[1] Em relação à atualização:

  1. O SQL Server 2008 - 2016 é oficialmente suportado pelo SSMS 2016. Veja mais informações na página de download. Para versões mais antigas, você pode manter seu SSMS antigo favorito, consulte o ponto 2 abaixo.

    • a única configuração que pode exigir sua atenção é Opções > SQL Server Object Explorer > Script para versão do servidor > (defina a versão do servidor)
  2. Diferentes versões do SSMS vivem bem juntas , ou seja, você pode ter o SSMS 2008 e o SSMS 2016 instalados juntos sem problemas - testados.

miroxlav
fonte
Isso é útil. Vale a pena notar que, sob o capô, o SSMS está armazenando todos esses arquivos em uma estrutura de arquivo simples em um único diretório, portanto, você não pode ter um arquivo com o mesmo nome em duas pastas diferentes.
Jon
@ Jon - Isso não é bem verdade. Pode parecer confuso à primeira vista, mas a estrutura de arquivos e pastas mostrada na árvore do projeto é independente da localização de arquivos no disco. No disco, ele não precisa ser plano (tente salvar novos arquivos em outro lugar ...), você pode distribuí-los nos diretórios conforme desejar. Em outras palavras: mantenha os arquivos em qualquer diretório do sistema de arquivos e adicione-os em qualquer pasta virtual na árvore de projetos do SSMS. (Se bem me lembro, é possível duplicar as referências.) Desvantagem: você precisa organizar os arquivos duas vezes - em diretórios e nas pastas do projeto.
miroxlav
6

No SSMS, se você ainda não estiver exibindo o snap-in Navegador de modelos, vá para Menu, Exibir, Explorador de modelos (tecla de atalho Ctrl- Alt- T).

Os modelos são carregados da sua máquina local, desta pasta

C: \ Arquivos de programas (x86) \ Microsoft SQL Server \ 110 \ Ferramentas \ Binn \ ManagementStudio \ SqlWorkbenchProjectItems \ Sql

Você pode adicionar subpastas como quiser e até aninhar (via Windows Explorer ou SSMS). Se não me engano, as pastas são carregadas apenas uma vez por inicialização do SSMS, portanto, talvez seja necessário reiniciar o SSMS para captar as alterações de pasta no sistema de arquivos.

p / s - Esse método redireciona novamente o navegador de modelos para organizar os scripts do projeto!

孔夫子
fonte
Longe de uma resposta, mas este é o truque menos kludgy sugerido até agora! Obrigado por compartilhar, eu vou manter esta aberta por mais alguns dias ...
DeepSpace101
4

Infelizmente, os projetos SSMS não suportam subpastas. Se você está falando sobre a pasta padrão na qual o SQL salva coisas, sim, você pode criar subpastas lá. Essa é apenas uma pasta no seu disco rígido. Essa pasta está localizada em "C: \ Usuários {nome de usuário} \ Documents \ SQL Server Management Studio \ Projects" por padrão.

mrdenny
fonte
2

A falta de subpastas é certamente frustrante. Vou tentar organizar minhas coisas em projetos separados na mesma solução. Cada um tem uma pasta Consultas ... Vou nomear os projetos da maneira como nomearia as subpastas (se eu pudesse criá-las!).

Aron
fonte
1

Adição à resposta 3, acima, resolvendo a situação redirecionando modelos em C: \ Arquivos de programas (x86) \ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ SqlWorkbenchProjectItems \ Sql.

Você precisará adicionar permissões às contas de usuário das máquinas para o Controle total. (Clique com o botão direito do mouse na pasta de destino, Propriedades, selecione os usuários da máquina, Editar, etc.)

Mesmo assim, é como Steve Balmer encabeçou esta solução no passe. Você pode salvar um arquivo lá, mas quando é aberto no SSMS, não é aberto com o nome do arquivo .sql, é um nome genérico. Portanto, existe todo esse rigmarole apenas para manter suas consultas, funções, scripts de tabela, sprocs, etc. todos organizados.

Ótima resposta, mas no Windows 8.1, foi impedido.

A melhor resposta que tenho é salvar via SSMS no sistema de arquivos que acredito respeitar o aninhamento de arquivos .sql. Eu tenho que criar um projeto de banco de dados no Visual Studio 2013, no qual eu possa configurar pastas conforme elas fizerem sentido para o fluxo do meu produto.

Mas não consigo abrir essas consultas pelo Server Explorer no Visual Studio ... no entanto, é possível organizar as consultas em um único local se elas estiverem no trabalho, scripts SPROC, scripts UDF etc.

Não existe um IDE para fazer esse tipo de trabalho de projeto e, sim, nas palavras de outro entrevistado aqui, isso é triste.

Divagando e divagando aqui um pouco ... em outras palavras, posso obter a estrutura de pastas que eu quero com um projeto de banco de dados no VS 2013, mas se eu quiser fazer logon em um servidor remoto para testá-los, tenho que acessá-los arquivo por arquivo. SSMS. Dor no lado de trás ... Eu quero um IDE que faça isso.

user1585204
fonte
0

Fiz progressos editando manualmente o arquivo do projeto SSMS para adicionar pastas embaixo da solução. Abra o arquivo .ssmssqlproj em um editor de texto. Procure os nós chamados LogicalFolder. O nó Diversos é um bom modelo para o que você precisa fazer.

Apenas copie essas linhas e mude o nome para a pasta que deseja ver. Altere também o valor do tipo para algo único. Aqui está o que eu fiz.

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

Certifique-se de manter uma cópia do arquivo do projeto (.ssmssqlproj). Se você estragar a edição, como fiz algumas vezes, o projeto não será aberto. Isso não será tão ruim se você instalou o suplemento TFS e está verificando seus arquivos de projeto - você pode simplesmente descartar as alterações. Se não, certifique-se de fazer uma cópia.

Em seguida, crio pastas na solução para corresponder aos nomes das pastas lógicas. Depois disso, criei um script de definição de tabela e um script de definição de tipo de tabela definido pelo usuário e os salvei em suas respectivas pastas. Eles apareceram na pasta "Diversos" no gerenciador de soluções, então eu os arrastei para as pastas apropriadas.

Isto é onde as coisas quebraram. Porque, eu acho, todos os procedimentos, funções, tabela e tipo armazenados estão em arquivos que possuem uma extensão .sql. Como os arquivos são .sql, eles foram colocados na pasta Consultas no Solution Explorer. No entanto, eles ainda estão fisicamente nas pastas certas no disco. Então esse é um passo na direção certa.

Quero ver se o atributo "Tipo" no arquivo do projeto corresponde a uma extensão de arquivo específica e se consigo descobrir quais são. Se eu conseguir as extensões corretas, o SSMS colocará os arquivos na pasta correta do projeto.

Posso ver o Visual Studio para ver como isso funciona, já que o SSMS é baseado no Visual Studio, de acordo com a tela inicial.

No entanto, estou no meio do caminho, então talvez um de vocês possa descobrir o resto!

RonSanderson
fonte
Isso não funcionou para mim. Falha ao abrir.
Soham Dasgupta