Ma première pensée est d'améliorer le schéma et avez-vous vraiment besoin de le faire.
Pour simplifier la question, il semble que vous souhaitiez définir le nom de la colonne en fonction d'une jointure sur mstBCE. Vous n'avez pas besoin d'une relation car le nombre de colonnes dans tblBCE est fixe. Au lieu de cela, utilisez sql dynamique pour définir les noms de colonne en sélectionnant à partir de mstBCE pivoté sur une ligne.
DECLARE @sql nvarchar(4000);
SELECT @sql = N'SELECT u.[username], u.[department],
b.[Option1TB] as [' + pvt.[1] + N'], b.[Option1],
b.[Option2TB] as [' + pvt.[2] + N'], b.[Option2],
b.[Option3TB] as [' + pvt.[3] + N'], b.[Option3]
FROM tblBCE as b
JOIN tblUser as u ON b.[UserID] = u.[userid]; '
FROM (
SELECT [tabconfigid], [tabdata]
FROM mstBCE
WHERE [tabType] = N'BCE'
) as m
PIVOT ( MIN(m.[tabdata]) FOR m.[tabconfigid] IN ([1], [2], [3]) ) as pvt;
EXEC (@sql);