Orta Seviye SQL Server Sql Server

SQL Server’da Dinamik Tablo Seçimi Yapmak

SQL Server Eğitimleri Kanalına Abone Olun

Herkese merhaba,

Bu yazıda SQL Server’da dinamik tablo seçim işleminin nasıl yapılabileceği hakkında bilgi vermeye çalışacağım.

SQL Server’da bazı durumlarda şartlara göre çalışan dinamik tablo seçimi yaptırmak isteyebiliriz.

Aşağıdaki örnek kodu kendinize göre revize ederek siz de bu işlemleri rahatlıkla yapabilirsiniz.

--Tablo 1 oluşturulması

CREATE TABLE Tablo1
(
    Id INT PRIMARY KEY IDENTITY(1, 1),
    Tablo1Veri NVARCHAR(50)
);

--Tablo 1 veri eklenmesi

INSERT INTO dbo.Tablo1
(
    Tablo1Veri
)
VALUES
('Veri' -- Tablo1Veri - nvarchar(50)
    );

--Tablo 2 oluşturulması

CREATE TABLE Tablo2
(
    Id INT PRIMARY KEY IDENTITY(1, 1),
    Tablo2Veri NVARCHAR(50)
);

--Tablo 2 veri eklenmesi

INSERT INTO dbo.Tablo2
(
    Tablo2Veri
)
VALUES
('Veri 2' -- Tablo1Veri - nvarchar(50)
    );


--Dinamik tablo işleminin yapılması

DECLARE @SecilenTabloAdi NVARCHAR(50);
DECLARE @Sorgu NVARCHAR(MAX);
DECLARE @TabloDeger INT = 1;

IF @TabloDeger = 2 --Burada atama işlemi yaptım

BEGIN
    SET @SecilenTabloAdi = N'Tablo1';

    SET @Sorgu = N'SELECT * FROM ' + @SecilenTabloAdi;

END;
ELSE
BEGIN
    SET @SecilenTabloAdi = N'Tablo2';
    SET @Sorgu = N'SELECT * FROM ' + @SecilenTabloAdi; --Bu sonuç döndü

END;

PRINT @Sorgu; --Sorguyu görmek için
EXEC sp_sqlexec @Sorgu;

Yukarıdaki kod bloğunu çalıştırdığınızda aşağıdaki sonucu göreceksiniz.

SQL Server’da Dinamik Tablo Seçimi Yapmak

Görüldüğü üzere Tablo2 tablosuna SELECT işlemini dinamik olarak yapmış olduk.

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

53 Kez Okundu
SQL Server Eğitimleri Kanalına Abone Olun

Yazar hakkında

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

Kopyalamak Yasaktır!