2008-11-24 5 views
2

J'ai une grande base de données avec beaucoup de tables et de sprocs, et je veux trouver et voir, par exemple, s'il y a une table avec un nom qui a "réglage" en tant que partie. Je ne suis pas très familier avec les bases de données système de SqlServer comme master, msdb etc., je sais qu'il existe un moyen d'interroger un de ces dbs pour obtenir ce dont j'ai besoin, quelqu'un sait-il comment le faire?Quel est le SQL pour interroger les bases de données du système SqlServer pour trouver un objet DB?

Merci, Ray.

Répondre

1

la table que vous voulez est sys.objects

SELECT * 
FROM sys.objects 
0

Le tableau avec les informations que vous recherchez est appelé sysobjects. Voilà une requête pour ce que vous décrivez:

SELECT * FROM sysobjects WHERE xtype = 'U' AND NAME LIKE '%setting%' 

(U est le type pour les tables utilisateur)

+0

sysobjects est maintenant déprécié par MS. Vous devriez plutôt utiliser sys.objects. –

3

SQL Server prend en charge également les vues du schéma d'information standard. Probablement mieux les utiliser, car cette requête devrait également fonctionner dans les différents moteurs de base de données si vous avez besoin de faire une migration:

SELECT * FROM INFORMATION_SCHEMA.tables where table_name LIKE '%Settings%' 
0

Pour SQL Server 2005

SELECT * FROM sys.objects où tapez ('U') et un nom comme '% setting%'

Questions connexes