【IT168技术文档】
Text类型的数据一般不同于字符串类型的数据,由于它的Size比较大,它的数据并不存在与Row中(当然你也可以用text in row指定它存于row中)。在Row中的只是它的一个指针。因此不能在存储过程中定义Text的局部变量,也不能用REPLACE方法来替换字符。如果要实现替换字符的功能,要写一个存储过程。
CREATE TABLE #temp (rowid int,textcol ntext) INSERT INTO #temp values (1,'aaa bbb ccc ddd eee') INSERT INTO #temp values (2,'aaa bbb cc ddd eee') INSERT INTO #temp values (3,'fff ggg ccc iii jjj') DECLARE @from nvarchar(100), @to nvarchar(100), @pos int, @len int, @rowid int DECLARE @ptrval binary(16) SET @from='ccc' SET @to='hhh' SET @len = LEN(@from) SET @rowid = 0 SELECT @rowid = rowid,@pos = CHARINDEX(@from,textcol)-1 FROM #temp WHERE CHARINDEX(@from,textcol) > 0 WHILE (@rowid > 0) BEGIN SELECT @ptrval = TEXTPTR(textcol) FROM #temp WHERE rowid = @rowid UPDATETEXT #temp.textcol @ptrval @pos @len @to SET @rowid = 0 SELECT @rowid = rowid,@pos = CHARINDEX(@from,textcol)-1 FROM #temp WHERE CHARINDEX(@from,textcol) > 0 END SELECT * FROM #temp DROP TABLE #temp