SQL Server ‘da Tablonun Hangi Objeler İçerisinde Kullanıldığını Bulmak !

Genelde b ir tablo da bir operasyon yapacağımız zaman bu tablonun nerede ve ne şekilde kullandığını bulmak isteriz. Çünkü yapacağımız değişiklik veya o tabloyu komple silme (DROP) işlemi o objenin hata almasına sebebiyet verecektir.

İşin en kritik ve unutulan noktalarıda burası aslında. Tabloyu DROP edersin sonra ya benim bu Stored Procedure ‘üm hata almakta veya View sonuç döndürmemekte gibi sonuçlarla karşılaşabilirsiniz .

Bu durumları yaşamadan önce hangi tablo üzerinde işlem yapacaksanız o tablonun hangi objeler içerisinde geçtiği bilgisine önceden erişim o objeleri incelerseniz öncesinde daha sağlıklı bir süreç yürütmüş olursunuz.

Bu işlem için aşağıda ki scripti kullanmanız yeterli. Ben örneğimde AdventureWorks2017 isimli veritabanımda Personel tablosu üzerinde gerçekleştireceğim işlem için bu tablonun kullanıldığı objelere erişmek istedim.

SELECT referencing_object_name = o.name,
       referencing_object_type_desc = o.type_desc,
       referenced_object_name = referenced_entity_name,
       referenced_object_type_desc = o1.type_desc
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 = 'Person';

Query de WHERE bloğunda referenced_entity_name kolonuna işlem yapacağınız tablo ismini girmeniz yeterli.

sqlturkiye

Kolay Gelsin.

Leave a Reply

Your email address will not be published. Required fields are marked *