Даже если вам удастся заставить это работать в функции, ваша инструкция RETURNS varchar
приведет к неявному преобразованию результата в varchar(1)
при выходе.
Я предполагаю, что это связано сВаш предыдущий вопрос, в этом случае это может работать лучше для вас.
ALTER FUNCTION FixMe(@colvalue VARCHAR(8000),
@width INTEGER)
RETURNS VARCHAR(8000)
WITH SCHEMABINDING, RETURNS NULL ON NULL INPUT
AS
BEGIN
RETURN REPLACE(RTRIM(@colvalue), ' ', ' ') +
CASE
WHEN @width > LEN(@colvalue)
THEN REPLICATE(' ', @width - LEN(@colvalue))
ELSE ''
END
END