valor una todas toda tablas tabla procedimiento las ejemplos dentro datos consultas columna buscar bases almacenado sql-server-2005 tsql date types

sql-server-2005 - tablas - buscar una tabla en todas las bases de datos sql



Consulta para encontrar todas las tablas con columnas de fecha en ella (5)

Esto debería ser el truco, solo agrega tipos adicionales si los necesitas:

select so.name table_name ,sc.name column_name ,st.name data_type from sysobjects so inner join syscolumns sc on (so.id = sc.id) inner join systypes st on (st.type = sc.type) where so.type = ''U'' and st.name IN (''DATETIME'', ''DATE'', ''TIME'')

editar: esto también funciona en Sybase y en cualquier otra variante de T-SQL.

¿Alguien me puede dejar saber la consulta para encontrar todas las tablas que tienen una fecha de columnas en ella?

Gracias


Utiliza INFORMATION_SCHEMA en tablas en la base de datos actual.
Probado en SQL Server 2008.

select distinct c.TABLE_NAME from INFORMATION_SCHEMA.COLUMNS as c where c.DATA_TYPE = ''datetime''

Otra consulta para SQL 2005/2008 utilizando vistas de sistema:

select tbl.name as ''Table'', c.name as ''Column Name'', t.name as ''Type'' from sys.columns as c inner join sys.tables as tbl on tbl.object_id = c.object_id inner join sys.types as t on c.system_type_id = t.system_type_id where t.name in (''datetime'', ''date'') order by tbl.name


Sé que esta es una pregunta antigua, pero la encontré buscando una solución de problema similar.
Esto que estoy usando:

SELECT DISTINCT OBJECT_NAME(col.OBJECT_ID) AS [TableName] FROM sys.all_columns col INNER JOIN sys.types typ ON col.user_type_id = typ.user_type_id WHERE col.user_type_id IN (61)

Puede encontrar todos los tipos de datos básicos aquí: http://www.sqlservercurry.com/2008/06/find-all-columns-with-varchar-and.html

Si desea encontrar todas las columnas con un tipo específico en una tabla específica, simplemente use esto:

SELECT OBJECT_NAME(col.OBJECT_ID) AS [TableName] ,col.[name] AS [ColName] ,typ.[name] AS [TypeName] FROM sys.all_columns col INNER JOIN sys.types typ ON col.user_type_id = typ.user_type_id WHERE col.user_type_id IN (61) AND OBJECT_NAME(col.OBJECT_ID) = ''TABLE_NAME''

Mayby alguien lo encontrará útil :)


Leve mejora a la consulta de RobS anterior. Esta también devuelve la columna del nombre del esquema.

select s.name as ''SchemaName'', tbl.name as ''Table'', c.name as ''Column Name'', t.name as ''Type'' from sys.columns as c inner join sys.tables as tbl on tbl.object_id = c.object_id inner join sys.types as t on c.system_type_id = t.system_type_id inner join sys.schemas s on tbl.schema_id = s.schema_id where t.name in (''datetime'', ''date'') order by s.name, tbl.name


Aquí hay otro juego de la respuesta de RobS que obtendrá todos los diferentes formatos de fecha y formatos de tiempo desde la introducción de fecha, fechahora2 y hora que se introdujeron.

SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE LIKE ''%date%'' OR DATA_TYPE LIKE ''%time%''

Probado en SQL Server 2012 y 2014 pero debería funcionar en 2003, 2005, 2008 y muchas conexiones ODBC también.