Partager via


sp_tables (Transact-SQL)

Retourne une liste d'objets qui peuvent être interrogés dans l'environnement actuel. Cela concerne tout objet pouvant apparaître dans une clause FROM, à l'exception des objets synonymes.

[!REMARQUE]

Pour déterminer le nom de l'objet de base d'un synonyme, interrogez l'affichage catalogue sys.synonyms.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

sp_tables [ [ @table_name = ] 'name' ] 
     [ , [ @table_owner = ] 'owner' ] 
     [ , [ @table_qualifier = ] 'qualifier' ] 
     [ , [ @table_type = ] "type" ] 
     [ , [@fUsePattern = ] 'fUsePattern'];

Arguments

  • [ @table_name= ] 'name'
    Table utilisée pour retourner des informations de catalogue. name est de type nvarchar(384), avec NULL comme valeur par défaut. Les filtres de comparaison génériques sont pris en charge.

  • [ @table_owner= ] 'owner'
    Nom du propriétaire de la table utilisée pour renvoyer des informations de catalogue. owner est de type nvarchar(384). Sa valeur par défaut est NULL. Les filtres de comparaison génériques sont pris en charge. Si le propriétaire n'est pas précisé, les règles par défaut définissant la visibilité des tables du SGDB sous-jacent sont utilisées.

    Si, dans SQL Server, l'utilisateur actuel est propriétaire d'une table portant le nom spécifié, les colonnes de la table sont retournées. Si le propriétaire n'est pas spécifié et que l'utilisateur actuel ne possède pas de table ayant le nom spécifié, la procédure recherche une table portant le nom spécifié, possédée par le propriétaire de la base de données. Si la recherche de la table aboutit, ce sont les colonnes de cette dernière qui sont retournées.

  • [ @table_qualifier= ] 'qualifier'
    Nom du qualificateur de la table. qualifier est de type sysname. Sa valeur par défaut est NULL. Divers produits SGDB gèrent une dénomination des tables en trois parties (qualifier**.owner.**name). Dans SQL Server, cette colonne représente le nom de la base de données. Dans certains SGBD, elle représente le nom (au sens du serveur) de l'environnement de base de données de la table.

  • [ , [ @table_type= ] "'type', 'type'" ]
    Liste de valeurs séparées par des virgules, donnant des informations sur toutes les tables des types spécifiés. Sont inclus TABLE, SYSTEMTABLE et VIEW. type est de type varchar(100), avec NULL comme valeur par défaut.

    [!REMARQUE]

    Chaque type de table doit être encadré de guillemets simples, l'ensemble du paramètre devant être encadré de guillemets doubles. Les types de table sont en lettres majuscules. Si SET QUOTED_IDENTIFIER est défini à ON, chaque guillemet simple doit devenir double et l'ensemble du paramètre doit être encadré de guillemets simples.

  • [ @fUsePattern = ] 'fUsePattern'
    Détermine si les caractères trait de soulignement (_), pourcentage (%) et crochet ([ ou ]) sont interprétés en tant que caractères génériques. Les valeurs qui sont acceptées par l'expression sont 0 (la correspondance de modèle est désactivée) et 1 (la correspondance de modèle est activée). fUsePattern est de type bit, avec 1 comme valeur par défaut.

Valeurs des codes de retour

Aucune

Jeux de résultats

Nom de colonne

Type de données

Description

TABLE_QUALIFIER

sysname

Nom du qualificateur de la table. Dans SQL Server, cette colonne représente le nom de la base de données. Ce champ peut contenir la valeur NULL.

TABLE_OWNER

sysname

Nom du propriétaire de la table. Dans SQL Server, cette colonne représente le nom de l'utilisateur de la base de données qui a créé la table. Ce champ retourne toujours une valeur.

TABLE_NAME

sysname

Nom de la table Ce champ retourne toujours une valeur.

TABLE_TYPE

varchar(32)

Table, table système ou vue.

REMARKS

varchar(254)

SQL Server ne retourne pas de valeur pour cette colonne.

Notes

Pour assurer une interopérabilité maximale, le client de la passerelle ne doit utiliser que les critères spéciaux SQL standard de SQL-92 (caractères génériques % et _).

Les informations de privilège concernant l'accès en lecture/écriture de l'utilisateur actuel à une table spécifique ne sont pas toujours vérifiées. Par conséquent, l'accès n'est pas garanti. Ce jeu de résultats ne comprend pas uniquement des tables et des vues, mais également des synonymes et des noms d'alias, dans le cas des passerelles vers les SGDB qui gèrent ces types. Si, dans les résultats de sp_server_info, l'attribut de serveur ACCESSIBLE_TABLES contient Y, seules les tables accessibles par l'utilisateur actuel sont retournées.

sp_tables est équivalent à SQLTables dans ODBC. Les résultats obtenus sont triés par TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNER et TABLE_NAME.

Autorisations

Requiert une autorisation SELECT sur le schéma.

Exemples

A. Retour d'une liste d'objets pouvant être sollicités dans l'environnement actuel

L'exemple suivant renvoie une liste d'objets pouvant être sollicités dans l'environnement actuel.

EXEC sp_tables ;

B. Retour d'informations sur les tables de la base de données AdventureWorks

L'exemple suivant retourne des informations sur les tables appartenant au schéma Person de la base de données AdventureWorks.

USE AdventureWorks;
GO
EXEC sp_tables 
   @table_name = '%',
   @table_owner = 'Person',
   @table_qualifier = 'AdventureWorks';