sp_columns (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Punto de conexión de análisis SQL en Microsoft Fabric Almacenamiento en Microsoft Fabric
Devuelve la información de columna para los objetos especificados, que se pueden consultar en el entorno actual.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sp_columns
[ @table_name = ] N'table_name'
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ , [ @column_name = ] N'column_name' ]
[ , [ @ODBCVer = ] ODBCVer ]
[ ; ]
Argumentos
[ @table_name = ] N'table_name'
@table_name es nvarchar(384), sin ningún valor predeterminado.
Nombre del objeto que se usa para devolver información del catálogo. @table_name puede ser una tabla, vista u otro objeto que sea columnas como funciones con valores de tabla. @table_name es nvarchar(384), sin ningún valor predeterminado. Se admite la coincidencia de patrón de caracteres comodín.
[ @table_owner = ] N'table_owner'
Propietario del objeto que se usa para devolver información de catálogo. @table_owner es nvarchar(384), con un valor predeterminado de NULL
. Se admite la coincidencia de patrón de caracteres comodín. Si no se especifica @table_owner , se aplican las reglas de visibilidad de objetos predeterminadas del DBMS subyacente.
Si el usuario actual posee un objeto con el nombre especificado, se devuelven las columnas de ese objeto. Si no se especifica @table_owner y el usuario actual no posee un objeto con el @table_name especificado, sp_columns
busca un objeto con el @table_name especificado propiedad del propietario de la base de datos. Si existe uno, se devuelven las columnas de ese objeto.
[ @table_qualifier = ] N'table_qualifier'
@table_qualifier es sysname, con un valor predeterminado de NULL
.
Nombre del calificador de objeto. @table_qualifier es sysname, con un valor predeterminado de NULL
. Varios productos de DBMS admiten la nomenclatura de tres partes para objetos (<qualifier>.<owner>.<name>
). En SQL Server, esta columna representa el nombre de la base de datos. En algunos productos, representa el nombre de servidor del entorno de base de datos del objeto.
[ @column_name = ] N'column_name'
Una sola columna y se usa cuando solo se desea una columna de información de catálogo. @column_name es nvarchar(384), con un valor predeterminado de NULL
. Si no se especifica @column_name , se devuelven todas las columnas. En SQL Server, @column_name representa el nombre de columna como se muestra en la syscolumns
tabla. Se admite la coincidencia de patrón de caracteres comodín. Para obtener la interoperabilidad máxima, el cliente de puerta de enlace debe asumir solo la coincidencia de patrones estándar de SQL-92 (los %
caracteres comodín y _
).
[ @ODBCVer = ] ODBCVer
Versión de ODBC que se está usando. @ODBCVer es int, con un valor predeterminado de 2
. Esto indica ODBC Versión 2. Los valores válidos son 2
y 3
. Para conocer las diferencias de comportamiento entre las versiones 2 y 3, consulte la especificación ODBC SQLColumns
.
Valores de código de retorno
Ninguno.
Conjunto de resultados
El sp_columns
procedimiento almacenado del catálogo es equivalente a SQLColumns
en ODBC. Los resultados devueltos se ordenan mediante TABLE_QUALIFIER
, TABLE_OWNER
y TABLE_NAME
.
Nombre de la columna | Tipo de datos | Descripción |
---|---|---|
TABLE_QUALIFIER |
sysname | Nombre del calificador del objeto. Este campo puede ser NULL . |
TABLE_OWNER |
sysname | Nombre del propietario del objeto. Este campo siempre devuelve un valor. |
TABLE_NAME |
sysname | Nombre de objeto. Este campo siempre devuelve un valor. |
COLUMN_NAME |
sysname | Nombre de columna, para cada columna del TABLE_NAME devuelto. Este campo siempre devuelve un valor. |
DATA_TYPE |
smallint | Código entero del tipo de datos ODBC. Si este tipo de datos no se puede asignar a un tipo ODBC, es NULL . El nombre del tipo de datos nativo se devuelve en la TYPE_NAME columna . |
TYPE_NAME |
sysname | Cadena que representa un tipo de datos. El DBMS subyacente presenta este nombre del tipo de datos. |
PRECISION |
int | Número de dígitos significativos. El valor devuelto de la PRECISION columna está en la base 10. |
LENGTH |
int | Tamaño de transferencia de los datos. 1 |
SCALE |
smallint | Número de dígitos a la derecha del separador decimal. |
RADIX |
smallint | Base para tipos de datos numéricos. |
NULLABLE |
smallint | Especifica la nulabilidad.1 = NULL es posible.0 = NOT NULL . |
REMARKS |
varchar(254) | Este campo siempre devuelve NULL . |
COLUMN_DEF |
nvarchar(4000) | Valor predeterminado de la columna. |
SQL_DATA_TYPE |
smallint | Valor del tipo de datos SQL tal como aparece en el campo TYPE del descriptor. Esta columna es la misma que la DATA_TYPE columna, excepto para los tipos de datos de intervalo datetime y SQL-92. Esta columna siempre devuelve un valor. |
SQL_DATETIME_SUB |
smallint | Código de subtipo para los tipos de datos interval de SQL-92 y datetime. Para otros tipos de datos, esta columna devuelve NULL . |
CHAR_OCTET_LENGTH |
int | Longitud máxima en bytes de una columna de tipos de datos de caracteres o enteros. Para todos los demás tipos de datos, esta columna devuelve NULL . |
ORDINAL_POSITION |
int | Posición ordinal de la columna en el objeto. La primera columna del objeto es 1. Esta columna siempre devuelve un valor. |
IS_NULLABLE |
varchar(254) | Indica si la columna admite valores NULL en el objeto. Se siguen las normas ISO para determinar la nulabilidad. Un DBMS compatible con ISO SQL no puede devolver una cadena vacía.YES = La columna puede incluir NULL .NO = La columna no puede incluir NULL .Esta columna devuelve una cadena de longitud cero si no se conoce la nulabilidad. El valor devuelto para esta columna es diferente del valor devuelto para la NULLABLE columna. |
SS_DATA_TYPE |
tinyint | Tipo de datos de SQL Server utilizado por los procedimientos almacenados extendidos. Para obtener más información, vea Tipos de datos. |
1 Para obtener más información, vea Información general sobre ODBC.
Permisos
Requiere SELECT
permisos y VIEW DEFINITION
en el esquema.
Comentarios
sp_columns
sigue los requisitos para los identificadores delimitados. Para obtener más información, consulte Identificadores de base de datos.
Ejemplos
Los ejemplos de código de Transact-SQL de este artículo utilizan la base de datos de ejemplo AdventureWorks2022
o AdventureWorksDW2022
, que se pueden descargar desde la página principal de Ejemplos y proyectos de la comunidad de Microsoft SQL Server.
En el ejemplo siguiente se devuelve información de columna para una tabla especificada.
USE AdventureWorks2022;
GO
EXEC sp_columns
@table_name = N'Department',
@table_owner = N'HumanResources';
Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)
En el ejemplo siguiente se devuelve información de columna para una tabla especificada.
USE AdventureWorksDW2022;
GO
EXEC sp_columns
@table_name = N'DimEmployee',
@table_owner = N'dbo';