sqlserver 修改替換text,ntext類型字段的兩種方案


方案一 用Update和Replace

--替換語句(因為varchar(max)最大值是8000,所以大於8000的部分會被截掉)
UPDATE dbo.SNS_UserBlog SET [Description]=REPLACE(CAST([Description] AS VARCHAR(max)),'sx','')
WHERE BlogID=142

這個方案有一定局限性那就是字段的長度不能超過8000。

方案二 UPDATETEXT 方法

--更新語句
DECLARE @ptrval BINARY(16)  
SELECT @ptrval=TEXTPTR([Description])  FROM SNS_UserBlog 
WHERE BlogID=142
IF @ptrval IS NOT NULL
UPDATETEXT SNS_UserBlog.[Description] @ptrval NULL NULL 'hellotheword sx'
--替換語句(因為varchar(max)最大值是8000,所以大於8000的部分會被截掉)
UPDATE dbo.SNS_UserBlog SET [Description]=REPLACE(CAST([Description] AS VARCHAR(max)),'sx','')
WHERE BlogID=142

方案三 UPDATETEXT參數拓展方法

--替換語句
DECLARE @ptr binary(16)--文本指針
DECLARE @oldstr VARCHAR(400)
declare @dl INT--需要替換的字符串的長度
DECLARE @val VARCHAR(400)--替換后的新字符串
DECLARE @index INT --要插入的 開始位置
set @oldstr = 'sx'--需要替換的字符串
set @dl = len(@oldstr)--字符串塊長度
SELECT @ptr=TEXTPTR([Description]),@val='',@index=CHARINDEX(@oldstr,[Description])-1 FROM  dbo.SNS_UserBlog
WHERE  BlogID=142--查詢條件
UPDATETEXT  dbo.SNS_UserBlog.Description  @ptr @index @dl @val

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM