SQL Server中TEXT类型操作
SQL Server中TEXT类型字段值在数据库中追加字符串方法
对text类型字段值进行追加更新的操作,一开始用了简单的update语句试了试,有错误,原来text、ntext类型的字段不能和 varchar类型进行add(+)运算,找了半天资料,查了一下帮助文档,终于找到了如何解决的方法了。
表:
CREATE TABLE [dbo].[test] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[mytext] [text] COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
数据:
id mytext
1 aaaa
在TEXT类型中追加字符串:
DECLARE @ptrval binary(16)
SELECT @ptrval = TEXTPTR(mytext) from test
UPDATETEXT test.mytext @ptrval null 0 'bbbb'
运行结果:
id mytext
1 aaaabbbb
追加成功,这个是在数据库中完成的,操作TEXT类型字段的和操作普通其它字符串类型字段是不一样的,这里需要用updatetext语句才行。
下面是updatetext的帮助说明:
UPDATETEXT
更新现有 text、ntext 或 image 字段。使用 UPDATETEXT 在适当的位置更改 text、ntext 或 image 列的一部分。使用 WRITETEXT 来更新和替换整个 text、ntext 或 image 字段。
语法
UPDATETEXT { table_name.dest_column_name dest_text_ptr }
{ NULL | insert_offset }
{ NULL | delete_length }
[ WITH LOG ]
[ inserted_data
| { table_name.src_column_name src_text_ptr } ]
参数
table_name.dest_column_name
要更新的表和 text、ntext 或 image 列的名称。表名和列名必须符合标识符的规则。有关更多信息,请参见使用标识符。指定数据库名和所有者名是可选的。
dest_text_ptr
指向要更新的 text、ntext 或 image 数据的文本指针的值(由 TEXTPTR 函数返回)。dest_text_ptr 必须为 binary(16)。
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
在 Microsoft® SQL Server™ 2000 中被忽略。在该版本中,日志记录由数据库的有效恢复模型决定。
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 函数返回)。
注释
新插入的数据可以是单个 inserted_data 常量、表名、列名或文本指针。
Update 操作 UPDATETEXT 参数
替换现有数据 指定一个非空 insert_offset 值、非零 delete_length 值和要插入的新数据。
删除现有数据 指定一个非空 insert_offset 值、非零 delete_length 值。不指定要插入的新数据。
插入新数据 指定 insert_offset 值、为零的 delete_length 值和要插入的新数据。
在 SQL Server 2000 中,可能存在指向 text、ntext 或 image 数据的行内文本指针,但这些指针无效。有关 text in row 选项的信息,请参见 sp_tableoption。有关使文本指针无效的信息,请参见 sp_invalidate_textptr。
当兼容级别等于 65时,要将 text 列初始化为 NULL,请使用 UPDATETEXT。如果兼容级别等于 70,则使用 WRITETEXT 将 text 列初始化为 NULL;否则 UPDATETEXT 将 text 列初始化为空字符串。有关设置兼容级别的信息,请参见 sp_dbcmptlevel。
权限
UPDATETEXT 权限默认授予在指定表上具有 SELECT 权限的用户。这些权限可在传递 SELECT 权限时传递。
示例
本示例把文本指针置于局部变量 @ptrval 中,然后使用 UPDATETEXT 更新拼写错误。
USE pubsGOEXEC sp_dboption 'pubs', 'select into/bulkcopy', 'true'GODECLARE @ptrval binary(16)SELECT @ptrval = TEXTPTR(pr_info) FROM pub_info pr, publishers p WHERE p.pub_id = pr.pub_id AND p.pub_name = 'New Moon Books'UPDATETEXT pub_info.pr_info @ptrval 88 1 'b' GOEXEC sp_dboption 'pubs', 'select into/bulkcopy', 'false'GO
0
顶一下
转载于:https://www.cnblogs.com/no7dw/archive/2009/12/10/1620762.html
SQL Server中TEXT类型操作相关推荐
- SQL Server中Text和varchar(max)数据类型区别
SQL Server中Text和varchar(max)数据类型区别 以前只知道text和image是可能被SQL Server淘汰的数据类型,但具体原因不太清楚,今天读书的时候发现了text与var ...
- server sql 中类型为bit应该插入什么值_关于SQL Server中bit类型字段增删查改的一些事...
前言 本文主要给大家介绍了关于SQL Server中bit类型字段增删查改的一些事,话说BIT类型字段之前,先看"诡异"的一幕,执行Update成功,但是查询出来的结果依然是1,而 ...
- oracle 图片 显示不出,Sql Server 中image类型迁移到Oracle 中Blob类型出现图片显示不出来,why????请博客们帮忙 | 学步园...
我现在在一项目中碰到这么一个问题 Sql Server 中image类型迁移到Oracle Blob类型出现图片显示不出来,我在Sql Server 中看了一条image数据 如下: 1.Sql Se ...
- .SQL Server中 image类型数据的比较
在SQL Server中如果你对text.ntext或者image数据类型的数据进行比较.将会提示:不能比较或排序 text.ntext 和 image 数据类型,除非使用 IS NULL 或 LIK ...
- SQL server中DateTime类型字段如何赋值零?
.net 1.1 不支持Sql Server datetime字段为空的情况 .net 2.0 开始支持Sql Server datetime字段为空 在不支持datetime为空的情况下, Sq ...
- Sql server中的Text数据类型
在什么情况下应用这个类型 [quote] 超过 8KB 的ASCII 数据可以使用Text数据类型存储.例如,因为 Html 文档全部都是 ASCII 字符,并且在一般情况下长度超过 8KB,所以这些 ...
- C# 学习笔记(18)操作SQL Server 中
C# 学习笔记(18)操作SQL Server 中 数据库基础操作 SQL语法可以参考 菜鸟教程 或者微软官方的SQL示例 注意SQL不区分大小写 查 1.基础查询 --最基础的查询语句, selec ...
- sql crud_SQL Server中的CRUD操作
sql crud CRUD operations are foundation operations every database developer and administrator needs ...
- 在SQL Server中读取事务日志-从黑客到解决方案
The SQL Server transaction log is akin to a 'Black box' in an airliner. It contains all of the recor ...
最新文章
- linux下配置ip地址的方法
- tf.keras.losses.MeanAbsoluteError 损失函数 示例
- Blazor将.NET带回到浏览器
- 35个设计一流的美味的水果壁纸欣赏
- 网站优化常见的五个易错点!
- WPF and Silverlight 学习笔记(十八):WPF样式(Style)与模板(Template)
- php制作标签,ThinkPHP标签制作教程
- improve怎么加ing_英语当中的ing
- CPU 的 ring0、ring1、ring2、ring3
- signature=ec663bb1ca3cfa2e278da44aa044d1c6,Fair Exchange of Signatures with Multiple Signers
- 如何管理QQ浏览器的扩展工具 QQ浏览器扩展工具的管理方法
- Ext3 -- Form 实例。 用来migrate file 数据到DB用的
- 中南林科大c语言程序设计,2017年中南林业科技大学计算机与信息工程学院802C语言与数据结构之C程序设计考研强化模拟题...
- Ubuntu Desktop 变为 Ubuntu Server 服务器版的方法
- K3 WISE 开发插件《SQL语句WHERE查询-范围查询/模糊查询》
- oracle客户端添加sqlldr
- stm32实现红外自发自收
- 删除Directory Opus后从快捷方式无法转到文件夹
- 谷歌账户跑着跑着没点击了,跑不出去什么原因。
- android波纹动画,Android实现水波纹特效
热门文章
- readyboost提升明显吗_主动降噪影响音质吗?为什么降噪耳机打开降噪后音质会有明显提升...
- tab 切换显示网页链接的标签_chromium如何管理Tab
- Java中print、printf、println的区别(对原文进行缩减,截取对自己有用的)
- quartus生成qdb文件_(原创)详解Quartus导出网表文件:.qxp和.vqm
- Python Debug调试技巧
- 佳士得于5月19日至27日以NFT形式拍卖安迪·沃霍尔作品
- 摩根溪创始人:Coinbase应该购买纽约证券交易所
- SAP License:工作中的怪现象
- Mongoose的链接和model优化
- 一文读懂-Impala