Следующий результат дает желаемый результат для меня:
DECLARE @Query VARCHAR(MAX);
SET @Query = 'SELECT ';
WITH Data AS (
SELECT '6B93119B-263B-4FED-AA89-198D26A3A3C4' AS AttributeID, 'DOB' AS AttributeName
UNION ALL
SELECT 'E27DBA94-F387-460A-BC02-84878692BDF6', 'Sex'
UNION ALL
SELECT 'ABF3B85C-0DEA-44FE-857A-AC63520F7294', 'History'
)
SELECT @Query = @Query + '''' + AttributeID + ''' ' + AttributeName + ', '
FROM Data
SET @Query = SUBSTRING(@Query, 1, LEN(@Query) - 1);
SELECT @Query
Редактировать: Просто чтобы быть понятным, раздел SQL в приведенном выше примере начинается с "WITH Data AS (" иокончание в закрывающей скобке (")") есть только в качестве примера данных.Вы можете опустить его полностью, поэтому образец становится:
DECLARE @Query VARCHAR(MAX);
SET @Query = 'SELECT ';
SELECT @Query = @Query + '''' + AttributeID + ''' ' + AttributeName + ', '
FROM MyTable
SET @Query = SUBSTRING(@Query, 1, LEN(@Query) - 1);
SELECT @Query