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
目录
相关文章
|
7天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
45 10
|
21天前
|
SQL 关系型数据库 MySQL
MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复
对于MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复。二进制日志是MySQL中记录所有数据库更改操作的日志文件。要进行时间点恢复,您需要执行以下步骤: 1. 确保MySQL配置文件中启用了二进制日志功能。在配置文件(通常是my.cnf或my.ini)中找到以下行,并确保没有被注释掉: Copy code log_bin = /path/to/binary/log/file 2. 在需要进行恢复的时间点之前创建一个数据库备份。这将作为恢复的基准。 3. 找到您要恢复到的时间点的二进制日志文件和位置。可以通过执行以下命令来查看当前的二进制日志文件和位
|
28天前
|
SQL 数据库连接 数据库
你不知道ADo.Net中操作数据库的步骤【超详细整理】
你不知道ADo.Net中操作数据库的步骤【超详细整理】
16 0
|
28天前
|
SQL 数据库
sql server中创建数据库和表的语法
sql server中创建数据库和表的语法
17 1
|
7天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
61 6
|
15天前
|
存储 关系型数据库 MySQL
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
|
1天前
|
SQL JavaScript API
❤Nodejs 第四章(操作本地数据库实现删除-源码地址已开放)
【4月更文挑战第4天】❤Nodejs 第四章(操作本地数据库实现删除-源码地址已开放)在Node.js中实现删除本地数据库记录的操作。首先尝试通过SQL删除ID为8的用户,然后编写`app.delete`路由处理程序,从请求体获取ID并执行删除。。最终成功删除用户并展示了数据库的更新结果。下一节将优化增删改查功能。
12 1
|
7天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
|
24天前
|
存储 SQL 数据库
C# 将 Word 转文本存储到数据库并进行管理
C# 将 Word 转文本存储到数据库并进行管理
|
28天前
|
SQL Oracle 关系型数据库
干货!sqlserver数据库所有知识点总结整理,含代码(挺全的)
干货!sqlserver数据库所有知识点总结整理,含代码(挺全的)
11 0