sql server - todas - Tablas de listas T-SQL, columnas
listar columnas de una tabla sql server (2)
En T-SQL (SQL Server 2000). ¿Cómo puedo listar todas las tablas y columnas en una base de datos? Además, en una consulta separada hay una forma de enumerar todas las columnas junto con el tipo de datos y las restricciones (NULLS, etc.). Gracias.
Muchas formas de hacerlo. A continuación hay un par de maneras en que puede enumerar:
Opción 1:
SELECT db_name() as DATABASE_NAME, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION,
COLUMN_DEFAULT, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH,
NUMERIC_PRECISION, NUMERIC_PRECISION_RADIX, NUMERIC_SCALE,
DATETIME_PRECISION
FROM INFORMATION_SCHEMA.COLUMNS
Opcion 2:
DECLARE @SQL VARCHAR(8000)
SELECT @SQL = ''''
SELECT @SQL = @SQL + ''UNION
SELECT '''''' + name + '''''' [DataBaseName], t.name [TableName], c.name [ColumnName], st.name [DataType] FROM '' + name + ''..sysobjects t INNER JOIN '' + name + ''..syscolumns c ON t.id = c.id INNER JOIN ''+ name + ''..systypes st on c.xtype = st.xtype where t.xtype = ''''U''''''
FROM master..sysdatabases
WHERE name IN (''databasename1'', ''databaseName2'') -- change here !!
SELECT @SQL = RIGHT(@SQL, LEN(@SQL)-5) + '' ORDER BY 1, 2, 3''
EXEC(@SQL)
Opción 3:
select db_name() as database_name
,table_name = sysobjects.name
,column_name = syscolumns.name
,datatype = systypes.name
,length = syscolumns.length
from sysobjects
inner join syscolumns on sysobjects.id = syscolumns.id
inner join systypes on syscolumns.xtype = systypes.xtype
where sysobjects.xtype = ''U''
order by sysobjects.name
,syscolumns.colid
Por favor revise el esquema de información .
select *
from MyDatabaseName.information_schema.columns
order by table_name, ordinal_position