0
votes

Obtenez les noms de toutes les tables et des vues d'une seule requête SQL pour SQL Server?

Je sais que informations_schema.tables donne les noms de table et Sys.Views donne les noms de vue. Mais je ne suis pas capable de faire les deux dans un seul résultat de la requête. Toute aide est appréciée.


3 commentaires

Il y a une raison pour laquelle vous ne pouvez pas utiliser un syndicat pour combiner deux instructions sélectionnées dans une seule requête?


Quels sont les besoins de union pendant qu'il peut obtenir toutes les informations de sys.objects @tomtom


En utilisant le schéma d'information. Et poser des questions sur la question qui est trivialement satisfaite avec la fabrication de 2 sélectionnées combinées dans une union, qu'il dit qu'il sait.


4 Réponses :


2
votes

sys.cuviews ( SYS.S.VIEWS (Transact-SQL) ) ne vous donne pas la liste des noms de colonnes, il (sans surprise) vous donne la liste. Afficher les objets dans la base de données:

contient une ligne pour chaque objet de vue, avec Sys.ObjectS.Type = v.

Vous voulez soit le (de manière appropriée) informations_schema.columns ou exécutez un joindre à partir de sys.tables à SYS.COLAUNS ON Object_ID .


Ce mot que vous avez modifié modifie complètement la question. Au lieu de vous maintenant, vous voulez maintenant sys.objects : xxx

'u' signifie table utilisateur et "V ' signifie vue.


2 commentaires

Oui, c'était une erreur. Je veux réellement la table et les noms de vue, alors je pense que la jointure pourrait ne pas être utile.


Oui, et qu'un mot change complètement votre question, @srivatsabalaji. J'ai ajouté plus à ma réponse.



0
votes

Vous pouvez essayer ce SQL:

SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_CATALOG='dbName'


0 commentaires

0
votes

La procédure système ci-dessous obtiendra toutes les tables et les vues. En savoir plus sur sp_tables

sp_tables

Vous pouvez également filtrer la liste à l'aide de Wildcharacters.

SP_TABLES 'Nom%%'

Info supplémentaire: Il existe une procédure correspondante pour la liste des procédures stockées SP_STORD_PROCÉDURE


0 commentaires

1
votes

Votre compréhension de informations_schema.tables code> est incorrecte. Il a à la fois des tables et des vues - malgré le nom.

Si vous voulez un ou l'autre type, vérifiez table_type code> qui peut être soit 'Voir' code> ou 'base_table' code>. p>

Donc, cela fait ce que vous voulez: P>

select t.*
from information_schema.tables t;


0 commentaires