Вы хотите объединить несколько строк в одно значение. Ваши параметры зависят от вашей версии SQL Server. В более старых версиях (я думаю 2005+) вы должны использовать извилистую процедуру XML. Запустите это на своем сервере, и вы увидите, как это работает, но я оставлю вам решать запрос ваших данных:
SELECT STUFF(
(SELECT ', <' + name + '>'
FROM sys.databases
WHERE database_id > 4
ORDER BY name
FOR XML PATH('') ,
ROOT('MyString') ,
TYPE
).value('/MyString[1]', 'varchar(max)'), 1, 2, '') AS namelist;
Начиная с SQL 2017 вы можете использовать функцию STRING_AGG , объяснил здесь .
Низко () и Высоко () "функции" волшебства компилятора, которые могут быть оценены во время компиляции. Это позволяет их использование в объявлениях константы как следующее:
var MySet : TBorderIcons; MySet2 : TBorderIcons; const AllIcons : TBorderIcons = [Low(TBorderIcon)..High(TBorderIcon)]; begin MySet := [Low(TBorderIcon)..High(TBorderIcon)]; MySet2 := AllIcons; end;
На предложение Barry:
FillChar(VarSet, SizeOf(VarSet), $FF);