Может быть, это поможет
CREATE FUNCTION dbo.EllipseTextWords(@Text VARCHAR(MAX), @EllipsedSize INT, @Separator AS VARCHAR(1), @EllipsisLength INT = 3)
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE @Tokens TABLE
(
Token VARCHAR(MAX)
)
WHILE (CHARINDEX(@Separator, @Text) > 0)
BEGIN
INSERT INTO @Tokens
SELECT LTRIM(RTRIM(SUBSTRING(@Text, 1, CHARINDEX(@Separator, @Text) - 1)))
SET @Text = SUBSTRING(@Text, CHARINDEX(@Separator, @Text) + 1, LEN(@Text))
END
INSERT INTO @Tokens
SELECT LTRIM(RTRIM(@Text))
UPDATE @Tokens SET Token = LEFT(Token, @EllipsisLength) + '...' + RIGHT(Token, @EllipsisLength) WHERE Token <> '' AND LEN(Token) > LEN(LEFT(Token, @EllipsedSize))
DECLARE @Ellipsed VARCHAR(MAX)
SELECT @Ellipsed = COALESCE(@Ellipsed + @Separator, '') + Token FROM @Tokens
RETURN @Ellipsed
END
тогда вы можете вызвать созданную функцию
SELECT dbo.EllipseTextWords(Details, 20, ' ', DEFAULT) FROM ErrorLog
но мне интересно, почему вы не делаете это на уровне представления.