请使用 WRITETEXT 替换 text、ntext 和 image 数据,并使用 UPDATETEXT 修改 text、ntext 和 image 数据。UPDATETEXT 更加灵活,因为它只更改 text、ntext 或 image 列的一部分而非整个列。
为获得最佳性能,推荐以 8040 字节整数倍的块区大小,插入或更新 text、ntext 和 image 数据。
如果数据库为简单模式或大容量日志恢复模式,则在插入或追加新数据时,使用 WRITETEXT 语句的 text、ntext 和 image 操作将成为最小日志记录操作。有关详细信息,请参阅 可以尽量减少日志量的操作。
注意: |
|---|
|
在更新现有值时,不使用最小日志记录。
|
为了正确使用 WRITETEXT,列必须已经包含有效的文本指针。
如果该表没有行内文本,则在通过 INSERT 向 text 列中添加显式或隐式空值时,SQL Server 不初始化 text 列以节省空间,并且不能获取这类空值的文本指针。若要将 text 列初始化为 NULL,请使用 UPDATE 语句。如果表有行内文本,则不必为空值初始化文本列,而且始终可以获取文本指针。
ODBC SQLPutData 函数更快,且使用的动态内存比 WRITETEXT 少。该函数可插入最多 2 千兆的 text、ntext 或 image 数据。
在 SQL Server 中,可能存在指向 text、ntext 或 image 数据的行内文本指针,但可能无效。有关 text in row 选项的信息,请参阅 sp_tableoption (Transact-SQL)。有关使文本指针失效的信息,请参阅 sp_invalidate_textptr (Transact-SQL)。