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
可以参阅下面的文章。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_nos-nz_0lyd.asp
Managing ntext, text, and image Data
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/acdata/ac_8_qd_13_8orl.asp
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 可以参阅下面的文章。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_nos-nz_0lyd.asp
Managing ntext, text, and image Data
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/acdata/ac_8_qd_13_8orl.asp
浙公网安备 33010602011771号