J'utilise ce qui suit pour rechercher des chaînes dans mes procédures stockées:
use DBname
SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%xxx%'
Est-il facile de modifier ce qui précède pour qu'il recherche les noms de table dans une base de données spécifique "DBname"?
sql
sql-server
sql-server-2008-r2
pourquoi leq
la source
la source
la source
and is_ms_shipped = 0;
ne semble pas faire grand-choseSi vous souhaitez consulter toutes les tables de toutes les bases de données à l'échelle du serveur et obtenir une sortie, vous pouvez utiliser la procédure sp_MSforeachdb non documentée :
la source
Je suppose que vous voulez passer le nom de la base de données en tant que paramètre et pas simplement exécuter:
Si tel est le cas, vous pouvez utiliser le SQL dynamique pour ajouter le nom de base de données à la requête:
la source
Vous pouvez également utiliser le bouton Filtrer pour filtrer les tables contenant une certaine chaîne. Vous pouvez faire de même avec les procédures stockées et les vues.
la source
Ajout de la réponse de @ [RichardTheKiwi].
Chaque fois que je recherche une liste de tables, je souhaite en général les sélectionner toutes ou les supprimer. Vous trouverez ci-dessous un script qui génère ces scripts pour vous.
Le script de sélection généré ajoute également une colonne tableName afin que vous sachiez quelle table vous regardez:
la source
vous pouvez également utiliser la commande show.
la source
Je sais que c'est un vieux fil, mais si vous préférez la recherche insensible à la casse:
la source
Je souhaite publier une solution simple pour chaque schéma que vous avez. Si vous utilisez MySQL DB, vous pouvez simplement obtenir à partir de votre schéma tout le nom de la table et y ajouter la condition WHERE-LIKE. Vous pouvez également le faire avec la ligne de commande habituelle comme suit:
où
tables_in_<your_shcema_name>
renvoie le nom de laSHOW TABLES
commande de la colonne .la source