基本方法:
|
| ||||||||
|
UPDATETEXT { table_name.dest_column_name dest_text_ptr }//{ 要更新的表以及text、ntext 或 image 列的名称,指向要更新的 text、ntext 或 image 数据的文本指针的值(由 TEXTPTR 函数返回)。dest_text_ptr 必须为数据类型 binary(16)。 } { NULL | insert_offset } { NULL | delete_length } [ WITH LOG ] [ inserted_data | { table_name.src_column_name src_text_ptr } ] 新插入的数据可以是单个 inserted_data 常量、表名、列名或文本指针。
为获得最佳性能,建议在插入或更新 text、ntext 和 image 数据时,使用 8,040 字节的倍数的块区大小。 insert_offset 以零为基的更新起始位置。对于 text 或 image 列, insert_offset 是在插入新数据前要从现有列的起点跳过的字节数。对于 ntext 列, insert_offset 是字符数(每个 ntext 字符占用 2 个字节)。从此基数为零的起始点开始的现有 text、ntext 或 image 数据向右移,为新数据留出空间。值为 0 表示将新数据插入现有数据的开始处。 值为 NULL 则将新数据追加到现有数据值后。 delete_length 从 insert_offset 位置开始的、要从现有 text、ntext 或 image 列中删除的数据长度。 delete_length 值对于 text 和 image 列用字节指定,对于 ntext 列用字符指定。每个 ntext 字符占用 2 个字节。值为 0 表示不删除数据。值为 NULL 则删除现有 text 或 image 列中从 insert_offset 位置开始到末尾的所有数据。 WITH LOG 在 SQL Server 2000 中被忽略。在 SQL Server 2005 中,日志记录由数据库的实际恢复模型决定。 inserted_data 要插入现有 text、ntext 或 image 列的 insert_offset 位置的数据。这是单个 char、nchar、varchar、nvarchar、binary、varbinary、text、ntext 或 image 值。inserted_data 可以是文字或变量。 table_name.src_column_name 用作插入数据源的表或 text、ntext 或 image 列的名称。表名和列名必须符合标识符规则。 src_text_ptr 指向用作插入数据源的 text、ntext 或 image 列的文本指针值(由 TEXTPTR 函数返回)。
指向用作插入数据源的 text、ntext 或 image 列的文本指针值(由 TEXTPTR 函数返回)。 eg.在字段operlog(order_flight)后追加11 declare @ptrval binary(16)
eg.删除表test中字段mytext的前两个字符 declare @ptrval binary(16) select @ptrval=textptr(mytext) from test where id=2 updatetext test.mytext @ptrval 0 2 –(0是删除起始位置,2-删除字符串长度)
eg.替换test中id=2的字段mytext中所有’333’为’ABC’ declare @s_str varchar(8000),@d_str varchar(8000) select @s_str='333' --要替换的字符串 ,@d_str='ABC' --替换成的字符串 declare @p varbinary(16),@postion int,@rplen int select @p=textptr(mytext),@rplen=len(@s_str),@postion=charindex(@s_str,mytext)-1 from test where id = 2 while @postion>=0 begin updatetext test.mytext @p @postion @rplen @d_str select @postion=charindex(@s_str,mytext)-1 from test where id = 2 end |
本文详细介绍了 SQL Server 2005 中用于更新 TEXT、NTEXT 和 IMAGE 列的 UPDATETEXT 方法的用法和参数说明,包括如何替换、插入或删除这些列中的数据,并提供了实例代码以供参考。
4566

被折叠的 条评论
为什么被折叠?



