SQL Server’da Sorgu Çıktısını HTML Tablosu Şeklinde Oluşturan Prosedür
Herkese merhaba,
Bu yazıda SQL Server’da sorgu çıktısını HTML tablosu şeklinde oluşturan prosedür hakkında bilgi vereceğim.
SQL Server’da bazı durumlarda sorgularınızın sonuçlarını dinamik bir şekilde HTML tablosu olarak görmek isteyebilirsiniz ya da seçili sorguları HTML formatında raporlamak için bir araç olarak kullanabilirsiniz.
Aşağıdaki prosedürü kullanarak siz de bu işlemi rahatlıkla yapabilirsiniz.
Ben işlemi Northwind veritabanını kullanarak yaptım. Siz istediğiniz veritabanında deneyebilirsiniz.
--Prosedürün oluşturulması
--Prosedürün oluşturulması
CREATE PROC dbo.sp_SorguyuHTMLTablosunaCevir
(@Sorgu NVARCHAR(3000))
AS
BEGIN
DECLARE @SutunListesi NVARCHAR(1000) = N'';
DECLARE @SorguIstegi NVARCHAR(2000) = N'';
DECLARE @DinamikSorgu NVARCHAR(3000);
DECLARE @Pozisyon INT;
SET NOCOUNT ON;
SELECT @SutunListesi += N'ISNULL (' + name + N',' + N'''' + N' ' + N'''' + N')' + N','
FROM sys.dm_exec_describe_first_result_set(@Sorgu, NULL, 0);
SET @SutunListesi = LEFT(@SutunListesi, LEN(@SutunListesi) - 1);
SET @Pozisyon = CHARINDEX('FROM', @Sorgu, 1);
SET @SorguIstegi = SUBSTRING(@Sorgu, @Pozisyon, LEN(@Sorgu) - @Pozisyon + 1);
SET @SutunListesi = REPLACE(@SutunListesi, '),', ') as TD,');
SET @SutunListesi += N' as TD';
SET @DinamikSorgu
= CONCAT(
'SELECT (SELECT ',
@SutunListesi,
' ',
@SorguIstegi,
' FOR XML RAW (''TR''), ELEMENTS, TYPE) AS ''TBODY''',
' FOR XML PATH (''''), ROOT (''TABLE'')'
);
EXEC (@DinamikSorgu);
SET NOCOUNT OFF;
END;
GO
--Prosedürün kullanımı
EXEC dbo.sp_SorguyuHTMLTablosunaCevir 'SELECT ProductName, UnitPrice FROM Products'
Prosedürü oluşturup çalıştırdığınızda aşağıdakine benzer bir sonuç elde edeceksiniz.
Görüldüğü üzere tablomuz oluşturuldu. Sonuca tıklayıp içine bakalım.
Görüldüğü üzere HTML tablo oluşturulmuş oldu.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.