С SQL 2017 функция могла быть похожей на это:
create function dbo.cap_words (@str varchar(max))
returns varchar(max)
as
begin
declare @result varchar(max);
select @result = string_agg( upper(left(value,1)) + substring(value,2,999),' ') from string_split(lower(@str),' ')
return @result;
end