Domanda Determinare quali oggetti fanno riferimento a una tabella in SQL Server


Lavoro con SQL Server 2008 e ho un database che ha più di 1500 colonne e circa 500 stored procedure e ....

Voglio rinominare una tabella che ha parecchie relazioni e fa riferimento in molte stored procedure e viste e ....

Come posso ottenere tutti gli elementi nel database che ha una relazione con questa tabella?

Grazie.


24
2017-11-26 10:52


origine


risposte:


Se hai bisogno di trovare oggetti di database (ad esempio tabelle, colonne, trigger) per nome, dai un'occhiata a GRATUITO Strumento Red-Gate chiamato Ricerca SQL che fa questo - cerca l'intero database per qualsiasi tipo di stringa (s).

enter image description here

enter image description here

È un ottimo strumento indispensabile per qualsiasi sviluppatore di database o DBA - ho già detto che è assolutamente GRATUITO da usare per qualsiasi tipo di utilizzo ??


12
2017-11-26 11:30



utilizzando 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

dove 'mySchemaName.myTableName' è il tuo schema.table, per esempio 'dbo.MyTable'


34
2017-11-26 10:57



È un'altra soluzione che ho trovato. Non è necessario installare alcuno strumento. Basta eseguire su query analyzer.

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

9
2018-05-02 08:24