sqlserver 批量修改替换text,ntext类型字段的方法
1.先查询text,ntext类型数据的长度,修改过程中一定注意长度,过长时修改会丢弃多余的数据。
select * FROM [dbo].[BoxCount_P_20190307] datalength([pinfo])>8000
2.数据长度全部小于8000的数据,可使用常规修改方法,把ntext数据转换成 varchar(max)
DECLARE @oldstr VARCHAR(400) DECLARE @val VARCHAR(400)--替换后的新字符串 set @oldstr = 'http://ohly.jdypf.com'--需要替换的字符串 set @val='http://eoud.dgygpx.com';--替换后的新字符串 update [dbo].[BoxCount_P] set [pinfo]=replace(cast([pinfo] as varchar(8000)) , @oldstr, @val) where [pinfo] like '%'+@oldstr +'%' and datalength([pinfo])<8000
3.数据长度全部大于8000的数据但数据大小小于2G;可以使用replaces,但要把ntext数据转换成 nvarchar(max)
DECLARE @oldstr VARCHAR(400) DECLARE @val VARCHAR(400)--替换后的新字符串 set @oldstr = 'http://poik.kxyw123.com'--需要替换的字符串 set @val='http://poik.dgygpx.com';--替换后的新字符串 update [dbo].[BoxCount_P] set [pinfo]=replace(cast([pinfo] as nvarchar(max)) , @oldstr, @val) where [pinfo] like '%'+@oldstr +'%' and datalength([pinfo])<8000
4.数据长度有可能大于8000的修改方法(也适合小于8000的数据),不知什么原因部分修改有误???
DECLARE @ptr binary(16)--文本指针 DECLARE @oldstr VARCHAR(400) declare @dl INT--需要替换的字符串的长度 DECLARE @val VARCHAR(400)--替换后的新字符串 DECLARE @index INT --要插入的 开始位置 set @oldstr = 'http://ohly.jdypf.com'--需要替换的字符串 set @val='http://eoud.dgygpx.com';--替换后的新字符串 set @dl = len(@oldstr)--字符串块长度 DECLARE Updatatext_Datas CURSOR FOR --创建游标 SELECT TEXTPTR([pinfo]),PATINDEX(@oldstr,[pinfo])-1 FROM dbo.[BoxCount_P_20190307] --表对应修改 WHERE [pinfo] like '%'+@o@valldstr+'%' --查询条件 OPEN Updatatext_Datas; --打开游标 FETCH NEXT FROM Updatatext_Datas into @ptr,@index --读取游标数据 WHILE @@FETCH_STATUS=0 BEGIN UPDATETEXT [dbo].[BoxCount_P_20190307].[pinfo] @ptr @index @dl @val --更行ntext类型的数据,表名对用修改 FETCH NEXT FROM Updatatext_Datas into @ptr,@index --读取游标数据 END; close Updatatext_Datas; --关闭游标 deallocate Updatatext_Datas; --释放游标
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· Apache Tomcat RCE漏洞复现(CVE-2025-24813)