sp_columns (Transact-SQL)
Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de análisis SQL en Microsoft FabricAlmacenamiento 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 = ] object
[ , [ @table_owner = ] owner ]
[ , [ @table_qualifier = ] qualifier ]
[ , [ @column_name = ] column ]
[ , [ @ODBCVer = ] ODBCVer ]
Argumentos
[ @table_name = ] object
es el nombre del objeto para devolver la información de catálogo. object puede ser una tabla, una vista u otro objeto que tenga columnas, por ejemplo, funciones con valores de tabla. object es de tipo nvarchar(384) y no tiene ningún valor predeterminado. Se admite la coincidencia de patrón de caracteres comodín.
[ @table_owner = ] owner
es el propietario del objeto utilizado para devolver la información de catálogo. owner es de tipo nvarchar(384) y su valor predeterminado es NULL. Se admite la coincidencia de patrón de caracteres comodín. Si no se especifica owner, se aplican las reglas de visibilidad de objetos predeterminadas del DBM subyacente.
Si el usuario actual posee un objeto con el nombre especificado, se devuelven las columnas de ese objeto. Si no se especifica owner y el usuario actual no posee un objeto con el object especificado, sp_columns busca un objeto con el object especificado que pertenezca al propietario de la base de datos. Si existe uno, se devuelven las columnas de ese objeto.
[ @table_qualifier = ] qualifier
es el nombre del calificador de objeto. qualifier es de tipo sysname y su valor predeterminado es NULL. Varios productos DBMS admiten en las tablas nombres formados por tres 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 = ] column
es una sola columna y se utiliza cuando solo se desea una columna de información del catálogo. column es de tipo nvarchar(384) y su valor predeterminado es NULL. Si no se especifica el parámetro column, se devolverán todas las columnas. En SQL Server, column representa el nombre de la columna como se muestra en la tabla sys.columns. Se admite la coincidencia de patrón de caracteres comodín. Para obtener una interoperabilidad máxima, el cliente de puerta de enlace solo debe dar por supuesta la coincidencia de patrón estándar de SQL-92 (caracteres comodín % y _).
[ @ODBCVer = ] ODBCVer
es la versión de ODBC que se utiliza. ODBCVer es de tipo inty su valor predeterminado es 2. Esto indica ODBC Versión 2. Los valores válidos son 2 ó 3. Para conocer las diferencias de comportamiento entre las versiones 2 y 3, vea la especificación de ODBC SQLColumns.
Valores de código de retorno
None
Conjuntos de resultados
El procedimiento almacenado de catálogo sp_columns equivale a SQLColumns en ODBC. Los resultados devueltos se ordenan por 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 por cada columna devuelta de TABLE_NAME. Este campo siempre devuelve un valor. |
DATA_TYPE | smallint | Código entero del tipo de datos ODBC. Si se trata de un tipo de datos que no se puede asignar a un tipo ODBC, se considera NULL. El nombre del tipo de datos nativo se devuelve en la columna TYPE_NAME. |
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 para la columna PRECISION está expresado en 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 = Se admiten valores NULL. 0 = No se admiten valores NULL. |
COMENTARIOS | 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 igual que la columna DATA_TYPE, salvo por los tipos de datos datetime e interval de 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 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 que cumpla la norma ISO SQL no puede devolver una cadena vacía. YES = La columna puede incluir valores NULL. NO = La columna no puede incluir valores 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 columna NULLABLE. |
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 (Transact-SQL). |
1 Para más información, consulte la documentación de Microsoft ODBC.
Permisos
Requiere permisos SELECT y VIEW DEFINITION en el esquema.
Observaciones
sp_columns sigue los requisitos para los identificadores delimitados. Para obtener más información, vea Database Identifiers.
Ejemplos
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.
-- Uses AdventureWorks
EXEC sp_columns @table_name = N'DimEmployee',
@table_owner = N'dbo';
Consulte también
sp_tables (Transact-SQL)
Procedimientos almacenados del catálogo (Transact-SQL)
Procedimientos almacenados del sistema (Transact-SQL)
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de