SELECTED ANSWER
replied on October 13, 2020
To get the Metadata with Field Names, you need to join the dbo.propval and the dbo.propdef tables
-- Do not edit the DECLARE statements
DECLARE @SQLCommand varchar(max)
DECLARE @Repository varchar(100)
DECLARE @LFSource varchar(255)
-- Edit the @LFSource below
-- Set path starting with repository name
SET @LFSource = 'VARKIT\Utilisateurs\BACCINO Olivier'
-- Do not edit anything below
-- Get Repository from LFSource Path
SET @Repository = SUBSTRING(@LFSource, 0, CHARINDEX('\', @LFSource))
SET @SQLCommand = ';WITH h AS(
-- top level rows, no parent detected
SELECT [LFPath] =
CASE [name]
WHEN ''ROOT FOLDER'' THEN CAST(''' + @Repository + ''' AS varchar(max))
ELSE CAST([name] AS varchar(max))
END, *
FROM [dbo].[toc] t1
WHERE NOT EXISTS( SELECT 1 FROM [dbo].[toc] t2 WHERE t1.[parentid] = t2.[tocid])
--
UNION All
SELECT CAST([LFPath] + ''\'' + t.[name] AS varchar(max))AS [LFPath], t.*
FROM h
JOIN [dbo].[toc] t ON h.[tocid] = t.[parentid]
)
SELECT [LFPath], [EntryList].[tocid] AS [LFEntryID], [name] AS [Name], [pd].[prop_name] AS [FieldName], [pd].[prop_type] AS [FieldType], [pv].[str_val], [pv].[num_val], [pv].[date_val] FROM
(Select * FROM
( SELECT h.[LFPath], h.[tocid] As [Ftocid]
FROM h
JOIN [dbo].[toc] ON h.[tocid] = [dbo].[toc].[tocid]
WHERE [LFPath] = ''' + @LFSource + ''' ) AS FList
INNER JOIN
[dbo].[toc] AS DList
ON FList.[Ftocid] = DList.[parentid]) AS EntryList
INNER JOIN
[dbo].[propval] AS [pv]
ON [EntryList].[tocid] = [pv].[tocid]
INNER JOIN
[dbo].[propdef] AS [pd]
ON [pd].[prop_id] = [pv].[prop_id]
-- Documents only
WHERE EntryList.[etype] = -2;'
EXEC(@SQLCommand);