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.

SQL Server’da Stored Prosedürlerin Kullandığı Tabloları Bulmak

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.

SQL Server’da Stored Prosedürlerin Kullandığı Tabloları Bulmak

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.

330 Kez Okundu

Kategoriler: