SqlServer数据库长文本和二进制字段操作总结(54powerman原创)

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: SqlServer数据库长文本和二进制字段操作总结(54powerman原创)--创建测试用表 Create Table TestnText (RowID Int Identity(1,1) Primary Key,Content nText) ...
SqlServer数据库长文本和二进制字段操作总结(54powerman原创)
--创建测试用表 Create Table TestnText (RowID Int Identity(1,1) Primary Key,Content nText) --读写nText文本,一定要用在事物中 Begin Tran DECLARE @ptrval varbinary(16) Select @ptrval=TEXTPTR(content) From TestnText Where RowID=1 --TEXTPTR函数以 varbinary 格式返回对应于 text、ntext 或 image 列的文本指针值。检索到的文本指针值可用于 READTEXT、WRITETEXT 和 UPDATETEXT 语句。 Select RowID,DATALENGTH(Content) From TestnText --要获取Content内容的长度要使用DATALENGTH函数来获取,结果为字节数 --要使用行文本指针,先获得指针 ReadText TestnText.Content @ptrval 1 10 --第一个参数为字段,一定要用表名限制字段, --第三个参数是开始读取 text、image 或 ntext 数据之前跳过的字节数,如果从开始选择为0 --第四个参数是选择的长度。是要读取数据的字节数(使用 text 或 image 数据类型时)或字符数(使用 ntext 数据类型时)。 --第五个参数可选,若值为HOLDLOCK,则表明使文本值一直锁定到事务结束。其他用户可以读取该值,但是不能对其进行修改。 SET TEXTSIZE 5 --如果此时指定TextSize则会限制以后的读取 ReadText TestnText.Content @ptrval 1 10 --由于上面指定了TextSize,所以此时返回了少于10个字节的数据,而只返回了5个字节 WriteText TestnText.Content @ptrval '请使用 WRITETEXT 来替换 text、ntext 和 image 数据,而用 UPDATETEXT 来修改 text、ntext 和 image 数据。UPDATETEXT 更灵活,因为它仅更改 text、ntext 或 image 列的某一部分,而不是整个列。如果数据库恢复模型简单或有大容量日志记录,则 WRITETEXT 是无日志记录的操作。这就意味着在将 text、ntext 或 image 数据写入数据库时,不会进行日志记录;因此,事务日志不会填满大量通常由这些数据类型组成的数据。为使 WRITETEXT 正常工作,列必须已经包含有效的文本指针。 如果该表没有行内文本,则在通过 INSERT 向 text 列中放入显式或隐式空值时,SQL Server 不初始化 text 列,从而节省了空间,而且不能获取这类空值的文本指针。若要将 text 列初始化为 NULL,请使用 UPDATE 语句。如果该表有行内文本,就没有必要为空值初始化文本列,而且您始终可以获取文本指针。与 WRITETEXT 相比,DB-Library dbwritetext 和 dbmoretext 函数以及 ODBC SQLPutData 函数速度较快且使用的动态内存较少。这些函数可以插入多达 2G 字节的 text、ntext 或 image 数据。' --第三个参数是要写入的文本, Set TextSize 0 --释放前面设定的TextSize设置 ReadText TestnText.Content @ptrval 0 100 UpdateText TestnText.Content @ptrval 3 1 '不要使' --第三个参数是以零为基的更新起始位置,或者说是插入数据的位置。 --第四个参数是是从 insert_offset 位置开始的、要从现有 text、ntext 或 image 列中删除的数据长度,或者要用新数据替换掉的数据长度。 ReadText TestnText.Content @ptrval 0 100 Select PATINDEX('%使用%', Content) From TestnText Commit /* 常用的函数: PATINDEX('%pattern%', expression) 返回给定字符串在 text 或 ntext 列中的字符位置。 DATALENGTH(expression) 返回 text、ntext 和 image 列的数据长度。 SET TEXTSIZE 返回可用 SELECT 语句返回的 text、ntext 或 image 数据的极限大小(以字节为单位)。 SUBSTRING(text_column, start, length) 返回由给定 start 偏移量和 length 所指定的 varchar 字符串。此长度应小于 8 KB。 TEXTVALID('table.column',text_ptr)一个 text、ntext 或 image 函数,用于检查给定文本指针是否有效。 */
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
3天前
|
Oracle 关系型数据库 MySQL
实时计算 Flink版操作报错合集之采集oracle的时候报ORA-65040:不允许从可插入数据库内部执行该操作如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
22 3
|
1天前
|
存储 关系型数据库 MySQL
MySQL中数据库的相关操作
MySQL中数据库的相关操作
21 8
|
2天前
|
SQL Kubernetes 数据库
实时计算 Flink版操作报错合集之查询sqlserver ,全量阶段出现报错如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
16 0
|
3天前
|
关系型数据库 MySQL 数据库
实时计算 Flink版操作报错合集之sqlserver mysql都用的胖包,sqlserver的成功了,mysql报这个错如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
20 6
|
3天前
|
SQL Java 网络安全
实时计算 Flink版操作报错合集之SQLserver表没有主键,同步的时候报错如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
13 1
|
5天前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之当 SQL Server 源数据库中的数据更新后,CDC 吐出的操作(op)是怎样的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
15 0
|
6天前
|
存储 数据库
sqlserver------数据库的存储过程(练习)
sqlserver------数据库的存储过程(练习)
8 1
|
6天前
|
数据库
sqlserver数据库学习感悟(1)----关于group by
sqlserver数据库学习感悟(1)----关于group by
9 0
|
6天前
|
SQL Oracle 关系型数据库
数据库sqlserver-----触发器的插入,更新和删除
数据库sqlserver-----触发器的插入,更新和删除
14 3
|
6天前
|
SQL 关系型数据库 数据管理
Microsoft SQL Server 是微软公司开发的一款关系型数据库管理系统
【5月更文挑战第14天】Microsoft SQL Server 是微软公司开发的一款关系型数据库管理系统
16 2