zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    面向对象课程第三次博客总结
    面向对象课程多线程总结
    23种设计模式整理
    java中synchronized与lock的理解与应用
    关于MySQL查询优化
    mysql操作规范建议
    Linux中实体链接与符号链接详解
    获取本地ipv4地址方法(go语言)
    分库分表与负载均衡的一致性hash算法
    golang闭包的一个经典例子
  • 原文地址:https://www.cnblogs.com/sunxi/p/4600152.html
Copyright © 2011-2022 走看看