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.
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.