当前位置:  开发笔记 > 数据库 > 正文

如何更新SQL Server 2000中的text或ntext字段

如何解决《如何更新SQLServer2000中的text或ntext字段》经验,为你挑选了1个好方法。

所以我需要更新一个文本字段.UPDATE语句或WRITETEXT语句在下面使用时都不起作用

CREATE TABLE MyTable (IDField int, MyField text)
INSERT INTO MyTable (IDField) SELECT 1

DECLARE @Data1 varchar(8000), @Data2 varchar(8000), @ptrval binary(16)

SELECT @Data1 = REPLICATE('1',8000)
SELECT @Data2 = REPLICATE('2',8000)

-- this sets MyField to string of only 8000 characters
UPDATE MyTable SET MyField = @Data1 + @Data2 WHERE IDField = 1 


SELECT @ptrval = TEXTPTR(MyField ) 
FROM MyTable 
WHERE IDField = 1 

-- this causes an error: Incorrect syntax near '+'.
--WRITETEXT MyTable.MyField @ptrval @Data1 + @Data2

当局部变量不能是TEXT类型时,我该怎么做呢?(如果我有SSQL Server 2005,我会使用varchar(max) - 但我没有)



1> Jim Birchall..:

请尝试使用UPDATETEXT

WRITETEXT MyTable.MyField @ptrval @Data1 
UPDATETEXT MyTable.MyField @ptrval 8000 NULL @Data2

插入偏移量基于零,因此8000应写入第8001个字符.删除偏移量为null,因为NULL值会删除insert_offset位置到现有文本末尾的所有数据.

参考:http://msdn.microsoft.com/en-us/library/ms189466.aspx

不要忘记nvarchar(您应该使用ntext字段)的最大容量是您正在使用的varchar字段的一半,因此在这种情况下您的块大小需要减少到4000.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有