USE tempdb GO -- 测试环境 CREATETABLE ta(id intidentity(1, 1), col1 text) CREATETABLE tb(id intidentity(1, 1), col1 text) INSERT ta SELECTREPLICATE('abc', 8000) INSERT tb SELECTREPLICATE('cba', 8000) -- show insert data length SELECT[ta.col1]=DATALENGTH(col1) FROM ta SELECT[tb.col1]=DATALENGTH(col1) FROM tb GO -- 更新 ta, 让 ta.col1 = ta.col1 + ' ' + tb.col1 -- 条件: ta.id = 1, tb.id = 1 DECLARE@p1binary(16), @p2binary(16) SELECT@p1=TEXTPTR(col1) FROM ta (NOLOCK) WHERE id =1 IFTEXTVALID('ta.col1', @p1) =0 BEGIN RAISERROR('ta.col1 invalid', 16, 1) RETURN END SELECT@p2=TEXTPTR(col1) FROM tb (NOLOCK) WHERE id =1 IFTEXTVALID('tb.col1', @p2) =0 BEGIN RAISERROR('tb.col1 invalid', 16, 1) RETURN END -- insert space split UPDATETEXT ta.col1 @p1NULL0'-' --insert tb.col1 UPDATETEXT ta.col1 @p1NULL0 tb.col1 @p2 GO -- show update result SELECT[ta.col1]=SUBSTRING(col1, 1, 10) +'...'+SUBSTRING(col1, 15988, 100), [ta.col1_length]=DATALENGTH(col1) FROM ta WHERE id =1 GO DROPTABLE ta, tb