Heb je ooit Microsoft Master Data Services (MDS) gebruikt, dan ken je waarschijnlijk een van de vervelendere beperkingen: je kunt attributen binnen een entity niet met drag-and-drop herschikken. Wil je 10 attributen van onderaan een entity met 100 kolommen naar boven verplaatsen? Dan mag je honderden keren klikken op die piepkleine pijltjesknoppen in de interface — één positie per klik.
Het is pijnlijk. Het is traag. Je krijgt zin om halverwege op te geven en genoegen te nemen met een rommelig datamodel.
Maar er is goed nieuws:
Je kunt dit direct in de database doen met een snelle SQL-update. Dat is veel sneller en je hebt meer controle.
🧩 Het probleem
Standaard bewaart MDS de volgorde waarin attributen getoond worden in de tabel mdm.tblAttribute, in de kolom SortOrder. Maar als je die waarde in de database wijzigt, zie je dat niet meteen in de webinterface van MDS, tenzij je de metadata-cache van het model ververst.
Ik laat zien hoe je een blok attributen van de ene plek naar de andere verplaatst, zonder eindeloos te klikken.
🎯 Het scenario
Stel dat je een entity hebt met 100 attributen, en je wilt de laatste 10 (ID’s 1668–1675) direct na attribuut-ID 626 zetten, dat nu een SortOrder van 18 heeft. Zo doe je dat.
⚙️ Stap 1: Schuif de bestaande SortOrders op om ruimte te maken
We hogen alles na SortOrder 18 met 8 op, zodat er ruimte komt voor ons nieuwe blok.
UPDATE aSET a.SortOrder = a.SortOrder + 8FROM mdm.tblAttribute aWHERE a.Entity_ID=33 AND a.SortOrder>18⚙️ Stap 2: Geef je gekozen attributen een nieuwe SortOrder
Nu zetten we onze 8 attributen in de SortOrder-plekken die net vrij zijn gekomen (19–26):
UPDATE mdm.tblAttribute SET SortOrder = 19 WHERE ID = 1668;UPDATE mdm.tblAttribute SET SortOrder = 20 WHERE ID = 1669;UPDATE mdm.tblAttribute SET SortOrder = 21 WHERE ID = 1670;UPDATE mdm.tblAttribute SET SortOrder = 22 WHERE ID = 1671;UPDATE mdm.tblAttribute SET SortOrder = 23 WHERE ID = 1672;UPDATE mdm.tblAttribute SET SortOrder = 24 WHERE ID = 1673;UPDATE mdm.tblAttribute SET SortOrder = 25 WHERE ID = 1674;UPDATE mdm.tblAttribute SET SortOrder = 26 WHERE ID = 1675;🔄 Stap 3: Dwing MDS de nieuwe volgorde over te nemen
Nu komt het addertje onder het gras: MDS cachet metadata. Ook al is de database bijgewerkt, de interface toont je wijzigingen misschien niet. Met een van deze opties dwing je MDS om alles opnieuw op te bouwen:
Optie A: Voeg een dummy-attribuut toe en verwijder het weer
Dit is de eenvoudigste omweg:
- Ga naar System Administration > Manage Entity.
- Voeg een nieuw dummy-attribuut toe.
- Sla op.
- Verwijder het dummy-attribuut weer.
Daarmee ververst MDS de metadata, en je nieuwe volgorde van attributen verschijnt.
Optie B (netter): Exporteer het model en deploy het opnieuw
Gebruik MDSModelDeploy.exe om je model te exporteren en opnieuw te importeren:
MDSModelDeploy.exe exportmdl -model "YourModelName" -version "VERSION_1" -package "yourmodel.pkg"MDSModelDeploy.exe deployclone -package "yourmodel.pkg" -model "YourModelName" -version "VERSION_CLONE"Dit bouwt de interne structuur opnieuw op en past de juiste volgorde van attributen opnieuw toe.
✅ Eindresultaat
Met deze aanpak:
- Bepaal je precies waar attributen verschijnen.
- Hoef je niet meer 100+ keer met de hand te klikken.
- Verklein je de kans op menselijke fouten in complexe modellen.
Veelgestelde vragen
Hoe herschik ik attributen in Master Data Services (MDS) zonder te klikken?
Werk de kolom SortOrder in de tabel mdm.tblAttribute bij met een SQL UPDATE. Schuif eerst de bestaande SortOrder-waarden op om ruimte te maken. Geef daarna de attributen die je wilt verplaatsen hun nieuwe waarden.
Waar bewaart MDS de volgorde waarin attributen getoond worden?
MDS bewaart de volgorde in de kolom SortOrder van de tabel mdm.tblAttribute. Je kunt die wijzigen met een SQL UPDATE.
Waarom toont de webinterface van MDS mijn nieuwe volgorde van attributen niet?
MDS cachet metadata. De database heeft de nieuwe SortOrder, maar de interface toont die pas als je de metadata van het model ververst.
Hoe dwing ik MDS om de metadata te verversen na een update van SortOrder?
Voeg onder System Administration > Manage Entity een dummy-attribuut toe, sla op en verwijder het weer. De nettere optie is het model exporteren en opnieuw deployen met MDSModelDeploy.exe.
Hoe exporteer en deploy ik een MDS-model opnieuw met MDSModelDeploy.exe?
Draai MDSModelDeploy.exe met exportmdl om het model naar een package te schrijven. Draai het daarna met deployclone op dat package om een nieuwe versie te maken. Dat bouwt de structuur opnieuw op met de juiste volgorde van attributen.
Reacties
Gerelateerde blogs
Houd je SQL Server-statistieken vers: een gids voor optimale databaseprestaties
Je eigen brein bouwen met MyGPT: metadata, logica en antwoorden binnen handbereik
AI als SQL-sidekick: hoe ChatGPT en Claude je code sneller en beter maken