sp_columns (Transact-SQL)
Devuelve información de columna para las tablas o vistas especificadas que se pueden consultar en el entorno actual.
Sintaxis
sp_columns [ @table_name = ] object [ , [ @table_owner = ] owner ]
[ , [ @table_qualifier = ] qualifier ]
[ , [ @column_name = ] column ]
[ , [ @ODBCVer = ] ODBCVer ]
Argumentos
[ @table_name=] object
Es el nombre de la tabla o de la vista que se utiliza para devolver información del catálogo. object_name 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 de la tabla o vista utilizada para devolver información del 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 predeterminadas de visibilidad de la tabla o de la vista del DBMS subyacente.Si el usuario actual es propietario de una tabla o vista con el nombre especificado, se devuelven las columnas de esa tabla. Si no se especifica owner y el usuario actual no es propietario de ninguna tabla o vista con el valor especificado para object, sp_columns buscará una tabla o una vista que contenga el valor especificado para object y que pertenezca al propietario de la base de datos. Si hay una, se devuelven las columnas de esa tabla.
[ @table_qualifier=] qualifier
Es el nombre del calificador de la tabla o la vista. qualifier es de tipo sysname y su valor predeterminado es NULL. Varios productos DBMS admiten nombres de tres partes para las tablas (qualifier**.owner.**name). En SQL Server, esta columna representa el nombre de la base de datos. En algunos productos, representa el nombre del servidor del entorno de base de datos de la tabla.[ @column_name=] column
Es una sola columna y se utiliza cuando sólo 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 que aparece en la tabla syscolumns. Se admite la coincidencia de patrón de caracteres comodín. Para obtener una interoperabilidad máxima, el cliente de puerta de enlace sólo 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 está utilizando. ODBCVer es de tipo int y su valor predeterminado es 2. Esto indica que la versión de ODBC es la 2. Los valores válidos son 2 ó 3. Para analizar las diferencias de comportamiento entre la versión 2 y la versión 3, vea la especificación SQLColumns de ODBC.
Valores de código de retorno
Ninguno
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 columna |
Tipo de datos |
Descripción |
---|---|---|
TABLE_QUALIFIER |
sysname |
Nombre del calificador de la tabla o vista. Este campo puede ser NULL. |
TABLE_OWNER |
sysname |
Nombre del propietario de la tabla o vista. Este campo siempre devuelve un valor. |
TABLE_NAME |
sysname |
Nombre de la tabla o vista. 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 = NULL es posible. 0 = No se admiten valores NULL. |
REMARKS |
varchar(254) |
Este campo siempre devuelve NULL. |
COLUMN_DEF |
nvarchar(4000) |
Valor predeterminado de la columna. SQL Server 2008 y SQL Server 2005 se diferencian de SQL Server 2000 en la forma en que descodifican y almacenan expresiones SQL en los metadatos del catálogo. La semántica de la expresión descodificada es equivalente al texto original; no obstante, no existen garantías sintácticas. Por ejemplo, los espacios en blanco se quitan de la expresión descodificada. Para obtener más información, vea Cambios de comportamiento en las características del Motor de base de datos en SQL Server 2008. |
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 la tabla. La primera columna de la tabla es la columna 1. Esta columna siempre devuelve un valor. |
IS_NULLABLE |
varchar(254) |
Nulabilidad de la columna de la tabla. 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 obtener más información, vea la documentación de Microsoft ODBC.
Permisos
Es necesario contar con un permiso de tipo SELECT sobre el esquema.
Notas
sp_columns sigue los requisitos de los identificadores delimitados. Para obtener más información, vea Identificadores delimitados (motor de base de datos).
Ejemplos
En el ejemplo siguiente se devuelve información de columna para una tabla especificada.
USE AdventureWorks
GO
EXEC sp_columns @table_name = N'Department',
@table_owner = N'HumanResources';