sql-server-2008 - saber - ver dependencias de una tabla sql server
Determine qué objetos hacen referencia a una tabla en SQL Server (3)
Trabajo con SQL Server 2008 y tengo una base de datos que tiene más de 1500 columnas y unos 500 procedimientos almacenados y ....
Quiero cambiar el nombre de una tabla que tiene varias relaciones y se menciona en muchos procedimientos y vistas almacenados y ....
¿Cómo puedo obtener todos los elementos de la base de datos que tienen relación con esta tabla?
Gracias.
Es otra solución que encontré. No tienes que instalar ninguna herramienta. Simplemente ejecute en el analizador de consultas.
Use [Database]
Go
SELECT
referencing_schema_name = SCHEMA_NAME(o.SCHEMA_ID),
referencing_object_name = o.name,
referencing_object_type_desc = o.type_desc,
referenced_schema_name,
referenced_object_name = referenced_entity_name,
referenced_object_type_desc = o1.type_desc,
referenced_server_name, referenced_database_name
--,sed.* -- Uncomment for all the columns
FROM
sys.sql_expression_dependencies sed
INNER JOIN
sys.objects o ON sed.referencing_id = o.[object_id]
LEFT OUTER JOIN
sys.objects o1 ON sed.referenced_id = o1.[object_id]
WHERE
referenced_entity_name = ''SP_Pay_GetData''
order by referencing_object_name
Si necesita encontrar objetos de la base de datos (por ejemplo, tablas, columnas, activadores) por nombre, eche un vistazo a la herramienta GRATUITA Red-Gate llamada Búsqueda de SQL que hace esto: busca en toda la base de datos cualquier tipo de cadena.
Es una herramienta imprescindible para cualquier DBA o desarrollador de bases de datos. ¿Ya mencioné que es absolutamente GRATIS para usar para cualquier tipo de uso?
Usando sys.dm_sql_referencing_entities
:
SELECT
referencing_schema_name, referencing_entity_name, referencing_id,
referencing_class_desc, is_caller_dependent
FROM
sys.dm_sql_referencing_entities (''mySchemaName.myTableName'', ''OBJECT'');
GO
donde ''mySchemaName.myTableName''
es su schema.table, por ejemplo ''dbo.MyTable''