您的位置:首页 > 数据库

关于SQLSERVER中更新Text类型SQL语句解析

2009-10-27 22:04 295 查看
基本方法:
UPDATETEXT{table_name.dest_column_namedest_text_ptr}//{要更新的表以及text、ntext或image列的名称,指向要更新的text、ntext或image数据的文本指针的值(由TEXTPTR函数返回)。dest_text_ptr必须为数据类型binary(16)。
}
{NULL|insert_offset}
{NULL|delete_length}
[WITHLOG]
[inserted_data
|{table_name.src_column_namesrc_text_ptr}]

新插入的数据可以是单个inserted_data常量、表名、列名或文本指针。

Update操作UPDATETEXT参数
替换现有数据 指定一个非空insert_offset值、非零delete_length值和要插入的新数据。
删除现有数据 指定一个非空insert_offset值、非零delete_length值和要插入的新数据。不指定要插入的新数据。
插入新数据 指定insert_offset值、为0的delete_length值和要插入的新数据。

为获得最佳性能,建议在插入或更新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位置开始到末尾的所有数据。

WITHLOG

在SQLServer2000中被忽略。在SQLServer2005中,日志记录由数据库的实际恢复模型决定。

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函数返回)。

eg.

declare@ptrvalbinary(16)
select@ptrval=textptr(operlog)fromorder_flightwhereid=12475
updatetextorder_flight.operlog@ptrvalnull0'11'

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: