Check integrity of attribute names in key language

The name of an attribute must exist in the key language otherwise errors may occur during operation. The key language can be specified in the server.properties.

If the key language is changed, it is possible that attributes exist that do not have a name in the key language. The following database script can be used to check if all attributes have a name in the key language.

MSSQL

The script for MASTER and SUPPLIER

SELECT COUNT(aa1.ID)
FROM [ArticleAttribute] aa1
INNER JOIN [ArticleAttributeLang] aal1 ON aa1.ID = aal1.[ArticleAttributeID]
WHERE aa1.ID NOT IN (
SELECT aa2.ID
FROM [ArticleAttribute] aa2
INNER JOIN [ArticleAttributeLang] aal2 ON aa2.ID = aal2.[ArticleAttributeID]
WHERE aal2.[LanguageID] = :keyLanguageID )

The script for MAIN

SELECT COUNT(sga1.ID)
FROM [StructureGroupAttribute] sga1
INNER JOIN [StructureGroupAttributeLang] sgal1 ON sga1.ID = sgal1.[StructureGroupAttributeID]
WHERE sga1.ID NOT IN (
SELECT sga2.ID
FROM [StructureAttribute] sga2
INNER JOIN [StructureGroupAttributeLang] sgal2 ON sga2.ID = sgal2.[StructureGroupAttributeID]
WHERE sgal2.[LanguageID] = 9 )

Oracle

The script for MASTER and SUPPLIER

SELECT COUNT(aa1.ID)
FROM "ArticleAttribute" aa1
INNER JOIN "ArticleAttributeLang" aal1 ON aa1.ID = aal1."ArticleAttributeID"
WHERE aa1.ID NOT IN (
SELECT aa2.ID
FROM "ArticleAttribute" aa2
INNER JOIN "ArticleAttributeLang" aal2 ON aa2.ID = aal2."ArticleAttributeID"
WHERE aal2."LanguageID" = :keyLanguageID )

The script for MAIN

SELECT COUNT(sga1.ID)
FROM "StructureGroupAttribute" sga1
INNER JOIN "StructureGroupAttributeLang" sgal1 ON sga1.ID = sgal1."StructureGroupAttributeID"
WHERE sga1.ID NOT IN (
SELECT sga2.ID
FROM "StructureAttribute" sga2
INNER JOIN "StructureGroupAttributeLang" sgal2 ON sga2.ID = sgal2."StructureGroupAttributeID"
WHERE sgal2."LanguageID" = 9 )