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.

336 Kez Okundu

Kategoriler: