¿Cómo devolvería los nombres de columna de una tabla con SQL Server 2008? es decir, una tabla contiene estas columnas: id, nombre, dirección, país y deseo devolverlas como datos.
sql
sql-server
tsql
Belliez
fuente
fuente
Esta es la manera más fácil
fuente
¿Algo como esto?
fuente
Un método es consultar syscolumns:
fuente
Objtype
embargo, encuentro la columna redundante :)Esto parece un poco más fácil que las sugerencias anteriores porque usa la función OBJECT_ID () para ubicar la identificación de la tabla. Cualquier columna con esa identificación es parte de la tabla.
Normalmente uso una consulta similar para ver si una columna que conozco es parte de una versión más nueva está presente. Es la misma consulta con la adición de {AND name = 'YOUR_COLUMN'} a la cláusula where.
fuente
prueba esto
...............................................
fuente
WHERE 1=2
y aún devolverá los metadatos de la columna. Si usa una interfaz programática como ODBC, entonces esta información de columna es accesible como una lista / matriz desde el objeto cursor dentro del programa, que es lo que estaba buscando. Puede que no tenga sentido en un contexto SQL puro, pero es un enfoque sucinto cuando se conecta a una base de datos a través de Python / Java / C / etc.Lo siguiente parece ser la primera consulta sugerida anteriormente, pero en algún momento debe especificar la base de datos para que funcione. Tenga en cuenta que la consulta también debería funcionar sin especificar TABLE_SCHEMA:
fuente
yo suelo
fuente
¿Por qué no probar esto?
La lista completa de columnas se proporciona en el script. Cópielo y use los campos según sea necesario.
fuente
"I want to return these as data"
, aunque su respuesta obtendrá los valores, es probable que el OP quiera los datos en tiempo de ejecución.USE[Database] SELECT TABLE_NAME,TABLE_SCHEMA,[Column_Name],[Data_type] FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='dbo'
fuente
fuente
No estoy seguro de si el valor syscolumns.colid es el mismo que el valor 'ORDINAL_POSITION' devuelto como parte de sp_columns, pero en lo que sigue lo estoy usando de esa manera, espero no estar desinformando ...
Aquí hay una ligera variación en algunas de las otras respuestas que he encontrado: lo uso porque la 'posición' u orden de la columna en la tabla es importante en mi aplicación, básicamente necesito saber '¿Cómo se llama la columna (n)? ?
sp_columns devuelve un montón de cosas extrañas, y soy más útil con una selección que las funciones T-SQL, así que seguí esta ruta:
fuente
Si bien la respuesta de @Gulzar Nazim es excelente, probablemente sea más fácil incluir el nombre de la base de datos en la consulta, lo que podría lograrse con el siguiente SQL.
fuente
Puede usar el siguiente código para imprimir todos los nombres de columna; También puede modificar el código para imprimir otros detalles en el formato que desee
Salida
Para usar el mismo código para imprimir la tabla y el nombre de su columna como clase C #, use el siguiente código:
Salida:
fuente
Solo uso una consulta como Martin Smith mencionó, solo un poco más corta:
fuente
fuente
Como SysColumns está en desuso , use
Sys.All_Columns
:Select * From Sys.Types
cederáuser_type_id = ID
del tipo. Esto es único dentro de la base de datos. Para los tipos de datos del sistema:user_type_id = system_type_id
.fuente
fuente
SI está trabajando con postgresql, existe la posibilidad de que más de un esquema pueda tener una tabla con el mismo nombre en ese caso, aplique la consulta a continuación
fuente
fuente