Quelle est la meilleure façon d'obtenir les noms de toutes les tables d'une base de données spécifique sur SQL Server?
895
Quelle est la meilleure façon d'obtenir les noms de toutes les tables d'une base de données spécifique sur SQL Server?
SHOW TABLES
-ce que (comme utilisé dans MySQL) fonctionne?Réponses:
SQL Server 2000, 2005, 2008, 2012, 2014, 2016, 2017 ou 2019:
Pour afficher uniquement les tables d'une base de données particulière
Ou,
PS: Pour SQL Server 2000:
la source
WHERE TABLE_TYPE='BASE TABLE'
n'inclura que les tables de base (et par extension, vous pourrez toujours les utiliserWHERE TABLE_TYPE != 'VIEW'
).AND name <> 'sysdiagrams'
.Voici une liste d'autres types d'objets que vous pouvez également rechercher:
la source
SELECT name FROM sysobjects WHERE xtype = 'U'
ferait la même chose.PK,FK,D,C,V,UQ
etc pour comparer la base de données source et cible, mais j'ai trouvé cette fonctionnalité dans VS, mais n'y a-t-il passql query
de comparaison complète de la base de données source et cible?'U'
est utilisé pour identifier la table utilisateur ... par opposition à peut'UT'
- être ou, la plus intuitive,'T'
... Ah bon, ça marche!OU
la source
OU
la source
SQL Server 2012
la source
la source
(SQL Server 2000 standard; toujours pris en charge dans SQL Server 2005.)
la source
select * from sysobjects where xtype='U'
la source
la source
SELECT name FROM sysobjects WHERE xtype='U' AND name <> 'sysdiagrams';
car la table sysdiagrams, bien que créée par Microsoft SQL Server Management Studio, n'est techniquement pas une table système mais une que nous aimons généralement exclure de toute façon.L'inconvénient
INFORMATION_SCHEMA.TABLES
est qu'il comprend également des tables système telles quedtproperties
et lesMSpeer_...
tables, sans aucun moyen de les distinguer de vos propres tables.Je recommanderais d'utiliser
sys.objects
(la nouvelle version de la vue sysobjects obsolète ), qui prend en charge l'exclusion des tables système:la source
Dans SSMS, pour obtenir tous les noms de table complets dans une base de données spécifique (par exemple, "MyDatabase"):
Résultats:
la source
Veuillez utiliser ceci. Vous obtiendrez des noms de table ainsi que des noms de schéma:
la source
la source
Merci à Ray Vega, dont la réponse donne toutes les tables d'utilisateurs dans une base de données ...
sp_helptext montre la requête sous-jacente, qui se résume à ...
la source
Eh bien, vous pouvez utiliser sys.objects pour obtenir tous les objets de base de données.
OU
la source
Ce lien peut fournir beaucoup plus d'informations sur ce sujet
la source
L'utilisation
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
vous montre également toutes les tables et colonnes associées.la source