SQL Server’da Stored Prosedürlerin Kullandığı Tabloları Bulmak
Herkese merhaba,
Bu yazıda SQL Server’da Stored prosedürlerin kullandığı tabloları nasıl bulacağımızdan bahsedeceğim.
Aşağıdaki kodu kullanarak bu işlemi rahatlıkla yapabilirsiniz.
DECLARE @TempTabloSP TABLE
(
spAdi VARCHAR(100),
tabloAdi NVARCHAR(100)
);
DECLARE @spAdi AS NVARCHAR(100);
DECLARE @SP_Cursor AS CURSOR;
SET @SP_Cursor = CURSOR FOR
SELECT [name]
FROM sys.objects
WHERE type = 'P';
OPEN @SP_Cursor;
FETCH NEXT FROM @SP_Cursor
INTO @spAdi;
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO @TempTabloSP
SELECT OBJECT_NAME(referencing_id) AS referencing_entity_name,
referenced_entity_name
FROM sys.sql_expression_dependencies AS sed
INNER JOIN sys.objects AS o
ON sed.referencing_id = o.object_id
WHERE referencing_id = OBJECT_ID(@spAdi);
FETCH NEXT FROM @SP_Cursor
INTO @spAdi;
END;
CLOSE @SP_Cursor;
DEALLOCATE @SP_Cursor;
SELECT *
FROM @TempTabloSP;
Kodu ilgili veri tabanı üzerinde çalıştırdığınızda aşağıdaki gibi bir sonuç alacaksınız.
Görüldüğü üzere tüm prosedürler için kullanılan tabloları göstermiş oldu. Dikkat edilirse CustOrderHist prosedüründe 4 tablo var. Gerçekten de bu şekilde mi kontrol edelim.
Görüldüğü üzere istediğimiz gibi tabloları elde etmiş olduk.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.