SQL Server’da İlgili Objede Kullanılmış Tüm Tabloları Listelemek

Herkese merhaba,

Bu yazıda sizlere SQL Server’da ilgili objede kullanılmış tüm tabloların nasıl listeleneceği hakkında bilgi vereceğim.

SQL Server’da bazı durumlarda ilgili prosedür, fonksiyon ya da view içine girmeden içinde hangi tabloların kullanıldığını görmek isteyebiliriz.

İşte bu gibi durumlarda aşağıdaki sorguyu kullanarak işinizi rahatlıkla görebilirsiniz.

;WITH stored_procedures
AS (SELECT oo.name AS table_name,
           ROW_NUMBER() OVER (PARTITION BY o.name, oo.name ORDER BY o.name, oo.name) AS row
    FROM sysdepends d
        INNER JOIN sysobjects o
            ON o.id = d.id
        INNER JOIN sysobjects oo
            ON oo.id = d.depid
    WHERE o.xtype = 'Objenizin türü buraya yazılacak'
          AND o.name = 'Objenizin Adı Buraya Yazılacak')
SELECT table_name
FROM stored_procedures
WHERE row = 1;

Objenizin adı dediğim kısım : Prosedür, Fonksiyon ya da View adıdır.

Objenizin türü dediğim kısım : Prosedür, Fonksiyon ya da View’ın xtype karşılıklarıdır.

Ben 3 tanesi için bunları belirtiyorum.

V = View

TF = Tablo Döndüren Fonksiyon

P = Stored Prosedür

FN = Sayısal Değerli Fonksiyon

Bunlardan hangi obje için işlem yapıyorsanız o objenin xtype değerini objenizin türü dediğim kısmına yazacaksınız.

İşlemi örnek olması açısından AdventureWorks2014 veritabanı üzerinde yapıyorum.

SQL Server’da İlgili Objede Kullanılmış Tüm Tabloları Listelemek

Ben burada vEmployee view’ı üzerinde çalıştım ve İlgili tip alanına da V yazdım.

Sonuç olarak kullanılan tablolar karşıma gelmiş oldu.

vEmployee  view’ını açıp incelerseniz ilgili tabloların olduğunu göreceksiniz.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

306 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!