Sor konvertálás key-value párosra egyszerűen

Időnként szükség lehet oszlopkat sorokra konvertálni. Persze, jó az unpivot, de ha nincs semmi speciálisra szükségünk, csak egyszerű key-value párokra, akkor van egy sokkal univerzálisabb megoldás: xml oda vissza konvertálás.

Lássuk mire gondolok.

 

select
    [name],
    [state_desc],
    [user_access_desc],
    [page_verify_option_desc],
    [log_reuse_wait_desc]
from sys.[databases]
where [database_id] = 1

 

És akkor az univerzális query amiben csak a lekérdezésnek kell módosuljon:

 

declare @xml_data xml = (
select
    [name],
    [state_desc],
    [user_access_desc],
    [page_verify_option_desc],
    [log_reuse_wait_desc]
from sys.[databases]
where [database_id] = 1
for xml path
)

select
    t.c.value('local-name(.)', 'nvarchar(255)') as [Key],
    t.c.value('(.)[1]', 'nvarchar(255)') as [Value]
from @xml_data.nodes('//row/*') t(c)

 

 

Ennyire egyszerű 🙂

Reklámok

A GDPR és a brute force search

Most, hogy igazán beindult a GDPR lesz/van mit takarítani. Node, annyi az adat, hogy ki tudja már, hol és mit tárolunk?
Ugye ott a doksi (ha van), ami vagy friss, vagy nem, de most tételezzük fel, hogy friss.
Vajon biztosra ki mered e jelenteni, hogy a rendesen karbantartott doksi alapján el tudod/tudjátok készíteni az alkalmazást, ami a GDPR-nek megfelel?

Szerintem csak 1 biztos módszer van, amíg be nem járatódik/járatódott az összes előfordulási lehetőség, ez pedig a brute force keresés a db-kben.

De, hogy nehogy példa nélkül maradjatok. Pl, kéri Kiss Józsi, hogy töröld az adatait. Jó esetben firstName, lastName mezők. Rosszabb esetben, kommentek, chat-ek, egyéb log jellegű mezőkben is fellelhető lesz, ami egy doksiból nem feltétlen derül ki.

Megjelent az SQL Operations Studio SQL Szerverhez

2017-ben megjelent az SQL Operations Studio Linux, MAC és Windows alá ami folyamatosan fejlődik. Ez a koncepció már nagyon hiányzott és most, hogy az SQL Server multiplatform, ideje volt készíteni egy multiplatform toolt is hozzá. Bár az ötlet jó, de nagy dolgokra még ne számítsunk az eszközzel kapcsolatban, képességei jóval a Management Studio alatt vannak. A célközönség alapvetően a fejlesztők (lesznek) viszont van néhány egyéb terület (pl: BI-Analyst), ahol ez az eszköz jól használható (lenne).

Nekem ezek hiányoznak:

  1. Kapcsolat elnevezése. SSMS-ben ez a registed szerver neve.
  2. Transaction Isolation Level Default beállítása. Kevéssé hozzáértőknek jó, ha ez READ UNCOMMITTED
  3. Kapcsolat és / vagy annak tulajdonságainak utólagos szerkesztése jelenleg csak “kódból” megy.

Ami viszont biztató:

  1. Verzió követés integráció (Git)
  2. Több egyszerű de hasznos dashboard
  3. MS-től megszokott módon egy viszonylag jó dokumentáció

Akinek van kedve egy próbát megér játszadozni vele.