Если вы используете SQL Server 2005 или более позднюю версию:
В команде LEFT используйте CHARINDEX для CHAR (13), чтобы найти позицию первого символа перевода строки, как в следующем примере:
declare @a table(id int identity(1,1) not null, lines text); --Source
declare @b table(id int identity(1,1) not null, lines text); --Target
insert into @a(lines) values ('1111111'+char(13)+char(10)+'222222')
insert into @b(lines) values ('aaaaa');
update b
set lines=LEFT(cast(a.lines as varchar(max)),CHARINDEX(char(13),cast(a.lines as varchar(max)),1)-1)+cast(b.lines as varchar(max))
from @a a
join @b b on a.id=b.id;
select * from @b;
Я предлагаю также обновить ваши типы данных TEXT на varchar (max), если это возможно.varchar (max) гораздо более устойчив.