MSdbms (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in Microsoft Fabric

Retourne des informations de colonne pour les objets spécifiés qui peuvent être interrogés dans l'environnement actuel.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_columns
    [ @table_name = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @column_name = ] N'column_name' ]
    [ , [ @ODBCVer = ] ODBCVer ]
[ ; ]

Arguments

[ @table_name = ] N'table_name'

@table_name est nvarchar(384), sans valeur par défaut.

Nom de l’objet utilisé pour renvoyer des informations de catalogue. @table_name peut être une table, une vue ou un autre objet qui est des colonnes telles que des fonctions table. @table_name est nvarchar(384), sans valeur par défaut. La recherche de correspondance avec des caractères génériques est prise en charge.

[ @table_owner = ] N’table_owner'

Propriétaire de l’objet utilisé pour renvoyer des informations de catalogue. @table_owner est nvarchar(384), avec la valeur par défaut NULL. La recherche de correspondance avec des caractères génériques est prise en charge. Si @table_owner n’est pas spécifié, les règles de visibilité d’objet par défaut du SGBD sous-jacent s’appliquent.

Si l'utilisateur actuel est propriétaire d'un objet portant le nom spécifié, les colonnes de cet objet sont retournées. Si @table_owner n’est pas spécifié et que l’utilisateur actuel ne possède pas d’objet avec le @table_name spécifié, sp_columns recherche un objet avec le @table_name spécifié appartenant au propriétaire de la base de données. S'il en existe un, les colonnes de cet objet sont retournées.

[ @table_qualifier = ] N’table_qualifier'

@table_qualifier est sysname, avec la valeur par défaut NULL.

Nom du qualificateur d’objet. @table_qualifier est sysname, avec la valeur par défaut NULL. Différents produits SGBD prennent en charge le nommage en trois parties pour les objets (<qualifier>.<owner>.<name>). Dans SQL Server, cette colonne représente le nom de la base de données. Dans certains produits, elle représente le nom du serveur de l'environnement de base de données de l'objet.

[ @column_name = ] N’column_name'

Une seule colonne est utilisée quand une seule colonne d’informations de catalogue est souhaitée. @column_name est nvarchar(384), avec la valeur par défaut NULL. Si @column_name n’est pas spécifié, toutes les colonnes sont retournées. Dans SQL Server, @column_name représente le nom de colonne comme indiqué dans la syscolumns table. La recherche de correspondance avec des caractères génériques est prise en charge. Pour une interopérabilité maximale, le client de passerelle doit supposer uniquement la correspondance de modèle standard SQL-92 (caractères % génériques et _ caractères génériques).

[ @ODBCVer = ] ODBCVer

Version d’ODBC utilisée. @ODBCVer est int, avec la valeur par défaut 2. Cela indique ODBC version 2. Les valeurs valides sont 2 ou 3. Pour connaître les différences de comportement entre les versions 2 et 3, consultez la spécification ODBC SQLColumns .

Valeurs des codes de retour

Aucune.

Jeu de résultats

La sp_columns procédure stockée de catalogue est équivalente à SQLColumns ODBC. Les résultats retournés sont classés par TABLE_QUALIFIER, TABLE_OWNERet TABLE_NAME.

Nom de la colonne Type de données Description
TABLE_QUALIFIER sysname Nom du qualificateur d'objet. Ce champ peut être NULL.
TABLE_OWNER sysname Nom du propriétaire de l'objet. Ce champ retourne toujours une valeur.
TABLE_NAME sysname Nom d’objet Ce champ retourne toujours une valeur.
COLUMN_NAME sysname Nom de colonne, pour chaque colonne du TABLE_NAME retour. Ce champ retourne toujours une valeur.
DATA_TYPE smallint Code entier d’un type de données ODBC. Si ce type de données ne peut pas être mappé à un type ODBC, il s’agit NULL. Le nom du type de données natif est retourné dans la TYPE_NAME colonne.
TYPE_NAME sysname Chaîne représentant un type de données. Le SGBD sous-jacent dispose de ce nom de type de données.
PRECISION int Nombre de chiffres significatifs. La valeur de retour de la PRECISION colonne est en base 10.
LENGTH int Taille de transfert des données. 1
SCALE smallint Nombre de chiffres situés à droite du séparateur décimal.
RADIX smallint Base pour les types de données numériques.
NULLABLE smallint Spécifie la possibilité de contenir une valeur NULL.

1 = NULL est possible.
0 = NOT NULL.
REMARKS varchar(254) Ce champ retourne NULLtoujours .
COLUMN_DEF nvarchar(4000) Valeur par défaut de la colonne.
SQL_DATA_TYPE smallint Valeur du type de données SQL tel qu'il apparaît dans le champ TYPE du descripteur. Cette colonne est identique à la DATA_TYPE colonne, à l’exception des types de données d’intervalle datetime et SQL-92. Cette colonne renvoie toujours une valeur.
SQL_DATETIME_SUB smallint Code de sous-type pour le type de données datetime et pour le type de données interval de SQL-92. Pour d’autres types de données, cette colonne retourne NULL.
CHAR_OCTET_LENGTH int Longueur maximale, en octets, d'une colonne de type de données caractère ou entier. Pour tous les autres types de données, cette colonne retourne NULL.
ORDINAL_POSITION int Numéro d'ordre de la colonne dans l'objet. La première colonne de l'objet est la colonne 1. Cette colonne renvoie toujours une valeur.
IS_NULLABLE varchar(254) Possibilité de valeur Null dans la colonne de l'objet. Les règles ISO sont utilisées pour déterminer la possibilité de valeur Null. Un SGBD conforme à SQL ISO ne peut pas retourner une chaîne vide.

YES = Colonne peut inclure NULL.
NO = La colonne ne peut pas inclure NULL.

Cette colonne renvoie une chaîne de longueur zéro si la possibilité de valeurs Null n'est pas connue.

La valeur retournée pour cette colonne est différente de la valeur retournée pour la NULLABLE colonne.
SS_DATA_TYPE tinyint Type de données SQL Server utilisé par les procédures stockées étendues. Pour plus d’informations, consultez Types de données.

1 Pour plus d’informations, consultez Vue d’ensemble d’ODBC.

autorisations

Nécessite SELECT et VIEW DEFINITION autorisations sur le schéma.

Notes

sp_columns suit les conditions requises pour les identificateurs délimités. Pour plus d’informations, consultez Identificateurs de base de données.

Exemples

Les exemples de code Transact-SQL de cet article sont fondés sur l’échantillon de base de données AdventureWorks2022 ou AdventureWorksDW2022 fourni, que vous pouvez télécharger à partir de la page d’accueil Échantillons et projets communautaires Microsoft SQL Server.

L'exemple suivant retourne les informations de colonne pour une table spécifique.

USE AdventureWorks2022;
GO

EXEC sp_columns
    @table_name = N'Department',
    @table_owner = N'HumanResources';

Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)

L'exemple suivant retourne les informations de colonne pour une table spécifique.

USE AdventureWorksDW2022;
GO

EXEC sp_columns
    @table_name = N'DimEmployee',
    @table_owner = N'dbo';