標籤:
方案一 用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=142IF @ptrval IS NOT NULLUPDATETEXT 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_UserBlogWHERE BlogID=142--查詢條件UPDATETEXT dbo.SNS_UserBlog.Description @ptr @index @dl @val
sqlserver 修改替換text,ntext類型欄位的兩種方案