SQL Server’da Tablo Kolonlarını Virgülle Ayırıp Liste Haline Getirmek

Herkese merhaba,

Bu yazıda SQL Server’da tablo kolonlarını virgülle ayırıp liste haline getirmek ile ilgili bilgi vermeye çalışacağım.

SQL Server’da bazı durumlarda tablonuzdaki kolon sayısı fazla olabilir. SELECT sonrası kolon isimlerini tek tek yazmak yerine aşağıdaki kodu kullanarak kolon isimlerinin hepsini listeleyebilirsiniz. Ya da dinamik olarak çeşitli yerlerde bu sorguyu kullanabilirsiniz.

Aşağıdaki kodu kullanarak siz de bu işlemi rahatlıkla yapabilirsiniz.

DECLARE @TABLE_NAME VARCHAR(128);
DECLARE @SCHEMA_NAME VARCHAR(128);

SET @TABLE_NAME = 'Categories';
SET @SCHEMA_NAME = 'dbo';

DECLARE @vvc_ColumnName VARCHAR(128);
DECLARE @vvc_ColumnList VARCHAR(MAX);

IF @SCHEMA_NAME = ''
BEGIN
    PRINT 'Hata : Şema tanımlanmadı!';
    RETURN;
END;

IF NOT EXISTS
(
    SELECT *
    FROM sys.tables T
        JOIN sys.schemas S
            ON T.schema_id = S.schema_id
    WHERE T.name = @TABLE_NAME
          AND S.name = @SCHEMA_NAME
)
BEGIN
    PRINT 'Hata : Tablo Adı : ''' + @TABLE_NAME + ''' ve Şema Adı : ''' + @SCHEMA_NAME + ''' veritabanında bulunamadı';
    RETURN;
END;

DECLARE TableCursor CURSOR FAST_FORWARD FOR
SELECT CASE
           WHEN PATINDEX('% %', C.name) > 0 THEN
               '[' + C.name + ']'
           ELSE
               C.name
       END
FROM sys.columns C
    JOIN sys.tables T
        ON C.object_id = T.object_id
    JOIN sys.schemas S
        ON S.schema_id = T.schema_id
WHERE T.name = @TABLE_NAME
      AND S.name = @SCHEMA_NAME
ORDER BY column_id;


SET @vvc_ColumnList = '';

OPEN TableCursor;
FETCH NEXT FROM TableCursor
INTO @vvc_ColumnName;

WHILE @@FETCH_STATUS = 0
BEGIN
    SET @vvc_ColumnList = @vvc_ColumnList + @vvc_ColumnName;

    -- get the details of the next column
    FETCH NEXT FROM TableCursor
    INTO @vvc_ColumnName;

    -- add a comma if we are not at the end of the row
    IF @@FETCH_STATUS = 0
        SET @vvc_ColumnList = @vvc_ColumnList + ',';
END;

CLOSE TableCursor;
DEALLOCATE TableCursor;

PRINT 'Virgülle Ayrılmış Kolon İsimleri';
PRINT '--------------------------------------------------';
PRINT @vvc_ColumnList;

Yukarıdaki kodu çalıştırınca aşağıdakine benzer bir sonuç göreceksiniz.

SQL Server'da Tablo Kolonlarını Virgülle Ayırıp Liste Haline Getirmek

Görüldüğü üzere tablo kolonlarını virgülle ayırıp liste haline getirmiş olduk.

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

329 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!