sp_tables (Transact-SQL)
Retourne une liste d'objets qui peuvent être interrogés dans l'environnement actuel. C'est-à-dire toute table utilisateur, table système ou vue, à l'exception des objets synonymes.
Notes
Pour déterminer le nom de l'objet de base d'un synonyme, interrogez l'affichage catalogue sys.synonyms.
Syntaxe
sp_tables [ [ @table_name = ] 'name' ]
[ , [ @table_owner = ] 'owner' ]
[ , [ @table_qualifier = ] 'qualifier' ]
[ , [ @table_type = ] "type" ]
[ , [@fUsePattern = ] 'fUsePattern'];
Arguments
[ @table_name= ] 'name'
Table ou vue utilisée pour renvoyer des informations de catalogue. name est de type nvarchar(384). Sa valeur par défaut est NULL. 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 prennent en charge les noms de table en trois parties (qualifier**.owner.**name). Dans SQL Server, cette colonne représente le nom de la base de données. Dans d'autres produits, elle représente le nom 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.Notes
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 d'une base de données
L'exemple suivant retourne des informations sur les tables appartenant au schéma Person de la base de données AdventureWorks2008R2.
USE AdventureWorks2008R2;
GO
EXEC sp_tables
@table_name = '%',
@table_owner = 'Person',
@table_qualifier = 'AdventureWorks2008R2';