Dans Management Studio, vous pouvez cliquer avec le bouton droit sur le groupe de tables pour créer un filtre pour la liste de tables. Quelqu'un at-il trouvé un moyen d'inclure plusieurs tables dans le filtre? Par exemple, j'aimerais que toutes les tables avec "br_*
" et "tbl_*
" soient affichées.
Quelqu'un sait-il comment faire ça?
Vous pourrez peut-être créer votre propre complément à SMSS qui vous permettrait de faire ce que vous recherchez:
L'art noir de l'écriture d'un complément SQL Server Management Studio 2005
Étendre les fonctionnalités de SQL Server 2005 Management Studio avec des compléments
Le premier est spécifiquement destiné à la recherche et à l'affichage de tous les objets de schéma portant un nom donné, afin que vous puissiez développer ce que vous recherchez.
Non , tu ne peux pas faire ça. Lorsque nous avons reçu Management Studio pour la première fois, j'ai essayé toutes les combinaisons possibles: _
, %
, *
, "
, '
, &&
, &
, and
, or
, |
, ||
, etc.
J'ai utilisé Toad for SQL Server (version gratuite) qui offre de très jolies options de filtrage.
Au début, on pourrait penser qu’il pourrait utiliser une requête CONTAINS
(par exemple, "br_*" OR "tbl_*"
), mais cela ne semble pas être le cas. Il semble prendre en charge uniquement une valeur qui est ensuite transmise à une clause LIKE
(par exemple, 'app'
devient '%app%'
).
J'utilise SQL Server Management Studio v17.1 et il a un bogue d'injection SQL dans sa construction de filtre, vous pouvez donc réellement échapper à la valeur par défaut
tbl.name like '%xxx%'
et écrivez votre propre requête (avec certaines limitations). Par exemple, pour filtrer les tables se terminant par "_Arch", "_hist", "_purge", j'ai utilisé la valeur de filtre suivante
_Arch') and RIGHT(tbl.name, 5) != N'purge' and RIGHT(tbl.name, 4) != N'hist' and not(tbl.name like N'bbb
Vous pouvez utiliser SQL Server Profiler pour afficher la requête construite et l'ajuster si nécessaire.
Vous ne savez pas si ce même bogue est disponible dans les versions précédentes de SQL Management Studio ou s'il sera corrigé, mais pour l'instant, je suis satisfait du résultat.
La méthode d'injection SQL fonctionne toujours (quelque peu) à partir de SSMS 2017 v17.8.1, même si elle met des crochets autour du symbole %
, elle sera donc interprétée littéralement.
Si vous utilisez le filtre Nom-> Contient, Profiler indique: ... AND dtb.name LIKE N'%MyDatabase1%')
Ainsi, dans le champ Nom-> Contient: MyDatabase1') OR (dtb.name LIKE 'MyDatabase2
devrait le faire pour les cas simples.
Comme d'autres l'ont déjà dit, vous ne pouvez pas le faire dans SQL Server Management Studio (à partir de 2014).
La requête suivante vous donnera une liste filtrée de tables, si c'est tout ce dont vous avez besoin:
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;
Votre chance, je viens de conquérir cet exploit, bien que mon succès soit modeste, car vous pouvez filtrer par schéma, ce qui vous permettrait de voir plus d’un tableau, mais vous devez taper le texte du filtre chaque fois que vous souhaitez le modifier.