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_OWNER
et 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 NULL toujours . |
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';