34,588
社区成员
发帖
与我相关
我的任务
分享
CREATE TABLE Test(ID INT IDENTITY PRIMARY key,Memo NTEXT)
INSERT Test SELECT REPLICATE('Roy_88中國風',1000)
go
DECLARE @value VARCHAR(8000)
SET @value=REPLICATE('Roy_88',1000)
DECLARE @p binary(16)
SELECT @p=TEXTPTR(Memo) FROM Test
IF TEXTVALID('Test.Memo',@p)=1
UPDATETEXT Test.Memo @p null 0 @value
go
SELECT DATALENGTH(Memo) AS 字節數,LEN(REPLICATE('Roy_88中國風',1000))+LEN(REPLICATE('Roy_88',1000)) AS 正確字數 FROM Test
/*
字節數 正確字數
23988 11994
*/
go
DECLARE @p binary(16),@Split NVARCHAR(4000),@len INT,@i INT
SELECT @p=TEXTPTR(Memo),@len=0,@i=1 FROM Test WHERE ID=1
SELECT @Split=SUBSTRING(Memo,@i,4000) FROM Test WHERE ID=1
IF TEXTVALID('Test.Memo',@p)=0
RETURN
WHILE @Split>''
BEGIN
SET @i=@i+4000
SET @len=@len+LEN(@Split)
SELECT @Split=SUBSTRING(Memo,@i,4000) FROM Test WHERE ID=1
END
SELECT @len AS 字數
/*
字數
11994
*/
--DROP TABLE Test