ver una todas tablas tabla procedimiento listar las ejemplos datos dato consultas consultar columnas columna buscar bases almacenado sql-server sql-server-2008 tsql database-schema

sql-server - procedimiento - listar todas las tablas de una base de datos sql server



Consulta SQL para buscar el esquema de todas las tablas (8)

Estoy trabajando en un SQL Server 2008 Db que tiene muchas tablas (alrededor de 200). Muchas de estas tablas contienen un campo con el nombre "CreatedDate". Estoy tratando de identificar todo el esquema de la tabla con este campo en particular.

¿Hay una consulta SQL para hacer esto?


Lo mismo pero en forma ANSI

SELECCIONAR * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME IN (SELECCIONAR TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = ''CreateDate'')


Me gustaría consultar el information_schema - esto tiene vistas que son mucho más legibles que las tablas subyacentes.

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE ''%create%''


Mi favorito...

SELECT objParent.name AS parent, obj.name, col.* FROM sysobjects obj LEFT JOIN syscolumns col ON obj.id = col.id LEFT JOIN sysobjects objParent ON objParent.id = obj.parent_obj WHERE col.name LIKE ''%Comment%'' OR obj.name LIKE ''%Comment%''

Arriba, estoy buscando "Comentario".

Suelta los signos de porcentaje si quieres una coincidencia directa.

Esto busca tablas, campos y cosas como nombres de teclas principales, restricciones, vistas, etc.

Y cuando desee buscar en StoredProcs después de monkear con las tablas (y necesite hacer coincidir los procs), use lo siguiente ...

SELECT name FROM sys.procedures WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE ''%Comment%''

Espero que ayude, creo que estas dos consultas son extremadamente útiles.


No necesita escribir SQL Query para esto en SQL Server 2008.

En SSMS Object Explorer elija Bases de datos o Tablas de la base de datos requerida (si necesita buscar en una base de datos), abra el menú Vista -> Detalles del Explorador de objetos (alternativamente presione F7), escriba% CreatedDate% en el cuadro de texto Buscar, ENTER, disfrútelo


Para mí, solo tengo acceso de lectura para ejecutar las consultas, así que necesito usar esta función a menudo, aquí está lo que uso:

SELECT * FROM INFORMATION_SCHEMA.TABLES where TABLES.TABLE_NAME like ''%your table name here%''

Puede reemplazar .TABLES con .COLUMNS luego se vería así:

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE columns.COLUMN_NAME like ''%your column name here%''


También puede intentar hacer esto usando una de las muchas herramientas de terceros que están disponibles para esto.

Las consultas son geniales para búsquedas simples, pero si necesita hacer más manipulación con datos, busque referencias y tal es aquí donde puede hacer un mejor trabajo con estos.

Además, estos son muy útiles cuando algunos objetos están encriptados y necesitas buscar

Estoy usando ApexSQL Search, que es gratuito, pero también hay muchos más (también gratuitos) en el mercado, como Red Gate o SSMS Tool Pack.


Use esta consulta:

SELECT t.name AS table_name, SCHEMA_NAME(schema_id) AS schema_name, c.name AS column_name , * FROM sys.tables AS t INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID Where ( c.name LIKE ''%'' + ''<ColumnName>'' + ''%'' ) AND ( t.type = ''U'' ) -- Use This To Prevent Selecting System Tables


select object_name(c.object_id) as table_name , schema_name(t.schema_id) as schema_name from sys.columns c join sys.tables t on c.object_id = t.object_id where c.name=N''CreatedDate'';

Se vuelve un poco más complicado si quiere también otras propiedades de la tabla, pero se referirá a las vistas del catálogo de objetos como sys.tables , sys.columns , etc.