Pergunta

No Management Studio, você pode clique direito sobre o grupo de tabelas para criar um filtro para a lista de tabela. Alguém já descobriu uma maneira de incluir várias tabelas no filtro? Por exemplo, eu gostaria de todas as tabelas com "br_*" e "tbl_*" para aparecer.

Alguém sabe como fazer isso?

Foi útil?

Solução

Você pode ser capaz de lançar seu próprio addon para SMSS que lhe permitiria fazer o que você está procurando:

A Arte Negra de escrever um SQL Server Management Studio 2005 Add-In

estender a funcionalidade no SQL Server 2005 Management Studio com add-ins

O primeiro é especificamente para pesquisar e exibir todos os objetos de esquema com um nome dado para que você pode ser capaz de expandir isso para o que você está procurando.

Outras dicas

Não , você não pode fazer isso. Quando se got Management Studio Eu tentei todas as combinações possíveis de tudo que você poderia pensar: _, %, *, ", ', &&, &, and, or, |, ||, etc ...

Eu usei Toad for SQL Server (versão freeware) que tem opções de filtragem muito agradáveis.

Estou usando o SQL Server Management Studio v17.1 e tem um bug de injeção SQL em sua construção filtro, assim você pode realmente escapar padrão

tbl.name like '%xxx%' 

e escrever sua própria consulta (com algumas limitações). Por exemplo, para mesas de filtro que terminam com "_arch", "_hist", "_purge" Eu costumava seguinte valor do filtro

_arch') and RIGHT(tbl.name, 5) != N'purge' and RIGHT(tbl.name, 4) != N'hist' and not(tbl.name like N'bbb

Você pode usar o SQL Server Profiler para ver a consulta construída e ajustá-lo conforme necessário.

Não tenho certeza se este mesmo erro está disponível nas versões anteriores SQL Server Management Studio ou quando ele será corrigido, mas por agora eu estou feliz com o resultado.

No começo parece que ele poderia usar uma consulta CONTAINS (por exemplo "br_*" OR "tbl_*"), mas não parece. Parece apenas para apoiar um valor que é então passada em uma cláusula LIKE (por exemplo 'app' se torna '%app%').

Como já foi dito, você não pode fazer isso no SQL Server Management Studio (para cima e incluindo 2014).

A consulta a seguir lhe dará uma lista filtrada de tabelas, se isso é tudo que você precisa:

SELECT
    CONCAT(TABLE_SCHEMA, '.', TABLE_NAME) AS TABLE_SCHEMA_AND_NAME,
    TABLE_SCHEMA,
    TABLE_NAME
FROM
    INFORMATION_SCHEMA.TABLES
WHERE
    TABLE_SCHEMA IN ('X', 'Y', 'Z') -- schemas go here
ORDER BY
    TABLE_SCHEMA,
    TABLE_NAME;

O método de injeção SQL ainda funciona (um pouco) a partir de SSMS 2017 v17.8.1, embora coloca colchetes em torno do símbolo %, por isso vai interpretar os literalmente.

Se você estiver usando o Nome> Contém filtro, shows Profiler: ... AND dtb.name LIKE N'%MyDatabase1%')

Assim, no Nome> Contém campo:. MyDatabase1') OR (dtb.name LIKE 'MyDatabase2 deve fazê-lo para casos simples

A sua sorte em, eu só conquistou esse feito, embora o meu sucesso é pequena porque você pode filtrar por esquema que permitem que você veja mais de 1 mesa, mas você tem que digitar o texto do filtro em cada vez que você quiser mudá-lo.

Esta é a velha eu sei, mas é bom saber que ele pode funciona se você digitar apenas entrando o texto "Filtro". Ir * ou % ou quaisquer outros caracteres de pesquisa padrão, basta digitar br_ ou tbl_ ou o que você deseja filtrar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top