zoukankan      html  css  js  c++  java
  • 批量替换表字段内容

    觉得有用,给兄弟们分享一下

    ALTER PROCEDURE [dbo].[Sp_ReplaceBadData]
    @TblName   VARCHAR(100)='',
    @ReplaceStr nvarchar(2000)=''
    as
    --作用:去除指定表中数据类型是VARCHAR,CHAR,NVARCHAR的字段值中的不可见字符
    --注意:此处只去掉前后的不可见字符,不包括中间的字符,而且没有区分中文
    --有兴趣的可以自己加个判别的中文,其实也很简单的,就是限定一个字符的范围就可以了
    --日期:2009-2-2
    --作者:jason-edit
    --注意:使用前请指定对应要修改的表名,并且需要在对应数据库下执行;
    SET NOCOUNT ON

    DECLARE @UpdateString NVARCHAR(1000)
    DECLARE @SelectString NVARCHAR(1000)
    DECLARE @COlName VARCHAR(100)
    DECLARE @COUNT   INT

    if(@TblName is null or @TblName='')
    begin
    SET @TblName = 'T_COUNTRY'--指定想要修改的表名
    end


    --定义游标取出指定表内的数据类型是VARCHAR,char,nVARCHAR的字段名称
    DECLARE cur_ColName   CURSOR
    FOR
    SELECT col.name
    FROM syscolumns AS col
    inner join sysobjects   AS obj   ON col.ID = obj.ID
    INNER join systypes   AS typ   ON col.xtype = typ.xtype
    WHERE obj.xtype ='U'
    AND obj.name = @TblName
    AND typ.name IN ('VARCHAR','CHAR','NVARCHAR','NCHAR')
    FOR READ ONLY
    --打开游标
    OPEN cur_ColName


    FETCH NEXT FROM cur_ColName INTO @ColName
    IF @@FETCH_STATUS<>0
    BEGIN
    PRINT '没有对应表或字段,'
    PRINT '请确认当前数据库内有' + @TblName + '表,'
    PRINT '或该表内有VARCHAR、CHAR、NVARCHAR、NCHAR类型的字段!'
    GOTO LABCLOSE
    END
    --循环修改
    WHILE @@FETCH_STATUS=0
    BEGIN
    --拼修改字符串
    --去掉左边的不可见字符
    SET @SelectString = 'SELECT @COU=COUNT(*)
          FROM ' + @TblName +'
         WHERE   '+ @ColName + ' IS NOT NULL'

    EXEC sp_executesql @SelectString,N'@COU INT OUTPUT',@COUNT OUTPUT
    if(@COUNT>0)
    BEGIN
       SET @UpdateString =
        ' UPDATE ' + @TblName +
        ' SET ' + @ColName + '=replace(' + @ColName + ','''+@ReplaceStr+''','''')
         WHERE     ' + @ColName + ' IS NOT NULL'
       EXEC sp_executesql @UpdateString
    END
    --PRINT 'column:    ' + @ColName + '---ok'
    FETCH NEXT FROM cur_ColName INTO @ColName
    END
    --关闭、释放游标
    LABCLOSE: CLOSE cur_ColName
       DEALLOCATE cur_ColName

  • 相关阅读:
    博客园二号地址:
    VisionMaster4.0.0二次开发教程(每日更新博客)
    5.观察者模式
    4.策略模式
    微信小程序radio的样式修改
    Linux下mysql安装
    idea2020 设置Run Dashboard
    一个方便统计页面 PV/UV、触发和交互的轻量级前端埋点工具
    登录认证-实名认证-产品设计
    启示录—产品经理
  • 原文地址:https://www.cnblogs.com/hqbird/p/1382569.html
Copyright © 2011-2022 走看看