Использовать varchar(max)
, а не text
, начиная с SQL Server 2005 +
Если вы застряли с текстом или текстом, вы можете использовать DATALENGTH для замены LEN. С ним есть различия (не подразумевается RTRIM, измеряются байты, а не символы), но ваши параметры ограничены.
Для старых типов данных нет эквивалента LTRIM
Вы можете БРОСИТЬ колонны, хотя:
CREATE TABLE dbo.Typetest (OldCol text NULL)
GO
INSERT dbo.TypeTest (OldCol) VALUES ('abcdefg')
INSERT dbo.TypeTest (OldCol) VALUES ('abcdefghijklm')
GO
SELECT LEN(CAST(OldCol AS varchar(max))), LTRIM(CAST(OldCol AS varchar(max))) FROM dbo.Typetest
GO
DROP TABLE dbo.Typetest
GO