2012-03-08 18 views

Respuesta

59

Esto debe hacerlo:

SELECT * 
FROM INFORMATION_SCHEMA.VIEWS 
WHERE VIEW_DEFINITION like '%[YourTableName]%' 
+3

Gracias fui con este 'SELECT * dE INFORMATION_SCHEMA.VIEWS DONDE VIEW_DEFINITION como 'YourTableName%.%' o VIEW_DEFINITION como 'YourTableName%]%' o como VIEW_DEFINITION '% YourTableName%' ' – Peter

+0

@James_Hill cómo hacer lo mismo en Oracle? –

+1

Hola, votante, llegaste 5 años tarde a la fiesta :-) ¿Qué no te gustó? –

1

seleccione su mesa -> ver las dependencias -> Objetos que dependen de

+2

. He encontrado que esto rara vez arroja resultados precisos. –

+0

Eso solo devuelve objetos db con schemabinding, creo, no todas las vistas, etc. tienen que tener esto. – Bridge

5

Si necesitas encontrar objetos de bases de datos (por ejemplo, tablas, columnas, disparadores) por su nombre - Eche un vistazo a FREE Herramienta Red-Gate llamada SQL Search que hace esto - busca en toda su base de datos cualquier tipo de cadena (s).

enter image description here

enter image description here

Es una gran herramienta indispensable para cualquier desarrollador DBA o base de datos - lo que ya se menciono que es absolutamente GRATIS a utilizar para cualquier tipo de uso ??

+2

Genial, ¡no sabía que esto existiera! – Peter

+1

No tengo afiliado con ellos, pero si puede permitirse comprar o tener su compañía con SQLCompare y SQLDataCompare, ¡son productos increíblemente poderosos! – logixologist

+0

Una cosa para mencionar es que estoy bastante seguro de que no busca objetos de búsqueda encriptados – Knightwisp

2

me parece que esto funciona mejor:

SELECT type, * 
FROM sys.objects 
WHERE OBJECT_DEFINITION(object_id) LIKE '%' + @ObjectName + '%' 
AND type IN ('V') 
ORDER BY name 

Filtrado VIEW_DEFINTIONINFORMATION_SCHEMA.VIEWS dentro me está dando un buen número de falsos positivos.

10

Para conocer las dependencias de la tabla se puede utilizar la vista de catálogo sys.sql_expression_dependencies:

SELECT 
referencing_object_name = o.name, 
referencing_object_type_desc = o.type_desc, 
referenced_object_name = referenced_entity_name, 
referenced_object_type_desc =so1.type_desc 
FROM sys.sql_expression_dependencies sed 
INNER JOIN sys.views o ON sed.referencing_id = o.object_id 
LEFT OUTER JOIN sys.views so1 ON sed.referenced_id =so1.object_id 
WHERE referenced_entity_name = 'Person' 

También puede probar ApexSQL Search un SSMS libres y VS complemento que también tiene la característica Ver Dependencias. La característica Ver Dependencias tiene la capacidad de visualizar las relaciones de todos los objetos de base de datos SQL, incluidas las que existen entre los objetos cifrados y del sistema, el servidor 2012 objetos específicos de SQL, y los objetos almacenados en bases de datos cifrados con cifrado de datos transparente (TDE)

responsabilidad: yo trabajo para ApexSQL como ingeniero de soporte

1
SELECT VIEW_NAME 
FROM INFORMATION_SCHEMA.VIEW_TABLE_USAGE 
WHERE TABLE_NAME = 'Your Table' 
+0

Descubrí que INFORMATION_SCHEMA.VIEW_TABLE_USAGE no es tan confiable. Debe enumerar tablas base y vistas de las que depende una vista particular. Desafortunadamente, en mi caso (SQL 2012) al menos una vista no se informó como dependiente – user1376490

+0

Descubrí que INFORMATION_SCHEMA.VIEW_TABLE_USAGE no es tan confiable. Debería enumerar las tablas base y las vistas de las que depende una vista en particular. Desafortunadamente, en mi caso (SQL 2012), una vista ni siquiera estaba presente en la vista IS.VTU, y menos en las vistas/tablas de las que dependía. Traté de usarlo para determinar el orden en el que las vistas tenían que volver a crearse, después de descartarlas todas. – user1376490