Boîte à outils SQL
Généré le 2026-02-13 04:39 UTC
Ce document regroupe des requêtes utiles pour diagnostiquer des problèmes structurels dans la base de données Umbraco : doublons, relations cassées, orphelins, etc.
⚠️ Toujours faire une sauvegarde avant modification. ⚠️ Éviter les DELETE sans validation préalable.
Trouver les propriétés en double dans un Document Type
sql
SELECT
ct.alias AS ContentType,
pt.alias AS PropertyAlias,
COUNT(*) AS count
FROM cmsPropertyType pt
JOIN cmsContentType ct ON ct.nodeId = pt.contentTypeId
GROUP BY ct.alias, pt.alias
HAVING COUNT(*) > 1
ORDER BY ct.alias, pt.alias;Lister les propriétés d’un type précis
sql
SELECT id, alias, dataTypeId, sortOrder
FROM cmsPropertyType
WHERE contentTypeId = (
SELECT nodeId FROM cmsContentType WHERE alias = 'ALIAS_ICI'
)
ORDER BY sortOrder;Vérifier les usages d’une propriété avant suppression
sql
SELECT *
FROM umbracoPropertyData
WHERE propertyTypeId = ID_ICI;Propriétés pointant vers un DataType inexistant
sql
SELECT pt.id, pt.alias, pt.dataTypeId
FROM cmsPropertyType pt
LEFT JOIN umbracoDataType dt ON dt.nodeId = pt.dataTypeId
WHERE dt.nodeId IS NULL;Propriétés liées à un Content Type inexistant
sql
SELECT pt.id, pt.alias, pt.contentTypeId
FROM cmsPropertyType pt
LEFT JOIN cmsContentType ct ON ct.nodeId = pt.contentTypeId
WHERE ct.nodeId IS NULL;Groupes de propriétés orphelins
sql
SELECT g.*
FROM cmsPropertyTypeGroup g
LEFT JOIN cmsContentType ct ON ct.nodeId = g.contenttypeNodeId
WHERE ct.nodeId IS NULL;Vérifier qu’un Element / DocType existe une seule fois
sql
SELECT alias, COUNT(*)
FROM cmsContentType
WHERE alias = 'ALIAS_ICI'
GROUP BY alias;Voir les DataTypes utilisés par un type
sql
SELECT pt.alias, dt.propertyEditorAlias, dt.dbType
FROM cmsPropertyType pt
JOIN umbracoDataType dt ON dt.nodeId = pt.dataTypeId
WHERE pt.contentTypeId = (
SELECT nodeId FROM cmsContentType WHERE alias = 'ALIAS_ICI'
);Exemple de suppression d’un doublon (à adapter !)
sql
DELETE FROM cmsPropertyType WHERE id = ID_A_SUPPRIMER;Valeur blockgrid -> Pour angular
sql
SELECT pd.id, pt.Alias AS PropertyAlias, pd.textValue, pd.intValue, pd.dateValue
FROM dbo.umbracoPropertyData pd
JOIN dbo.cmsPropertyType pt ON pt.id = pd.propertyTypeId
WHERE pt.Alias = 'pageWidgets'
AND pd.textValue IS NOT NULL
AND textValue LIKE '%mon titre%'
ORDER BY pt.Alias;Conseils d’exploitation
- Les aliases doivent être uniques dans un même type.
- Les scripts SQL doivent être idempotents (
IF NOT EXISTS). - Après modification : recycler l’application.
- Si le backoffice tombe dans Settings, suspecter souvent :
- doublons
- datatype manquant
- plugin/composer qui ne démarre plus.

