`

将数据库里所有表(用户表)的某一字段值的某个字,改为另外一个字

 
阅读更多

 

 

 

问题描述:将数据库里所有表(用户表)的某一字段值的某个字,改为另外一个字;

 

解决方法:使用Replace函数即可;外加游标实现;-- mssql 2005试验通过

 

 

 

 

最新版, 只需更改一处即可;


declare   @oldstr   varchar(100)
set   @oldstr= '里'     --原字符
declare   @newstr   varchar(100)
set   @newstr= '裏'     --新字符

declare   @s   varchar(8000)
declare   tb   cursor   local   for
select   s= 'if   exists(select   1   from   ['+b.name+ ']   where   ['+a.name+ ']   like   ''%'+@oldstr+ '%'' )
update   ['+b.name+ ']   set   ['+a.name+ ']= Replace('+a.name+','''+@oldstr+''','''+@newstr+''')'+ '   where   ['+a.name+ '] like ''%'+@oldstr+ '%'''
from   syscolumns   a   join   sysobjects   b   on   a.id=b.id
where   b.xtype= 'U'   and   a.status> =0
  and   a.xusertype   in(175,239,231,167)
open   tb
fetch   next   from   tb   into   @s
while   @@fetch_status=0
begin
  exec(@s)
  print @s

  fetch   next   from   tb   into   @s
end
close   tb
deallocate   tb

 

 

 

 

 

 

 

 

---------------------------------------------------------------------------------

要更改两处; 

 

declare   @oldstr   varchar(100)
set   @oldstr= '恆'     --原字符
declare   @newstr   varchar(100)
set   @newstr= '恒'     --新字符

declare   @s   varchar(8000)
declare   tb   cursor   local   for
select   s= 'if   exists(select   1   from   ['+b.name+ ']   where   ['+a.name+ ']   like   ''%'+@oldstr+ '%'' )
update   ['+b.name+ ']   set   ['+a.name+ ']= Replace('+a.name+',''恆'',''恒'')'+ '   where   ['+a.name+ '] like ''%'+@oldstr+ '%'''
from   syscolumns   a   join   sysobjects   b   on   a.id=b.id
where   b.xtype= 'U'   and   a.status> =0
  and   a.xusertype   in(175,239,231,167)
open   tb
fetch   next   from   tb   into   @s
while   @@fetch_status=0
begin
  exec(@s)
  print @s

  fetch   next   from   tb   into   @s
end
close   tb
deallocate   tb

分享到:
评论

相关推荐

    连接两个属性表,修改源属性表中某字段的值,目标属性表对应字段的值自动修改

    接下来,我们需要创建一个事件监听器,以便在源属性表的特定字段值发生变化时触发相应的操作。这可以通过实现`IObjectEvents`接口并重写`AfterPropertySet`方法来完成。当`AfterPropertySet`被调用时,说明源属性表...

    Oracle数据库表建立字段唯一性的方法

    - **注意事项**:如果尝试插入重复值,Oracle将抛出一个错误。 2. **唯一索引(Unique Index)** - **定义**:唯一索引是在表的特定列上创建的索引,其作用与唯一约束相似,但它是通过索引实现的,而不是通过表级...

    数据库建表增加或删除字段

    在Oracle数据库中,如果一个表中存在某个字段已经不再被使用或者该字段需要被替换,那么可以通过`ALTER TABLE`语句来删除该字段。这一操作会永久地从表中移除指定的列,因此在执行之前需要确保该字段的数据确实不再...

    oracle_11gR2_06 介绍 数据库,数据表,记录,字段,和对数据表的操作(create,alter,drop)

    这里创建了一个名为`xue_sheng`的表,该表有两个字段:`id`和`xing_ming`。 ##### 2. 插入数据(Insert Data) 插入数据是向数据表中添加新记录的过程。可以使用`INSERT INTO`语句来完成这一操作。例如: ```sql ...

    mysql更新一个表里的字段等于另一个表某字段的值实例

    在MySQL数据库操作中,有时我们需要将一个表中的字段值更新为另一个表中相应字段的值。这在数据同步、数据修复或数据整合等场景中非常常见。本篇将详细讲解如何实现这一操作,并通过实例来具体说明。 首先,我们要...

    sql语句替换某列所有字段中的某个字符(如替换‘1,2,3,4’中的4)

    假设我们有一个名为`users`的表,其中包含一个名为`usertype`的列,该列存储用户类型,以逗号分隔的数字形式表示,如“1,2,3,4”。现在,我们需要将所有出现的“4”替换为“3”,可以使用以下SQL语句: ```sql ...

    oracle中将一个用户的所有表的权限授予另一个用户的方法

    本文将深入探讨如何在Oracle中将一个用户的所有表的权限授予另一个用户,这一过程通常在PL/SQL环境下通过执行特定的命令来完成。下面我们将详细解析这一操作的步骤、原理以及可能遇到的问题。 ### Oracle中的权限...

    在数据库中按照字段名找所在的表的语句

    在数据库管理过程中,查找特定字段所在的表是一项常见且重要的任务。这不仅有助于了解数据结构,还能辅助进行数据迁移、查询优化等工作。本文将基于提供的标题、描述、标签以及部分内容,详细解析如何通过SQL命令在...

    修改DataTable的某一行某一列的值

    1. **DataTable**: 是一个内存中的二维表格,类似于关系数据库表。 2. **DataRow**: 表示`DataTable`中的一行。 3. **DataColumn**: 表示`DataTable`中的一列。 4. **DataColumn.DataType**: 表示该列的数据类型。 5...

    中国所有省市县数据库表包含数据.rar

    在我们所讨论的“中国所有省市县数据库表包含数据.rar”压缩包中,包含了名为“js_sys_area_data.sql”的文件,这是一个SQL脚本文件,用于创建和填充一个描述中国行政区域结构的数据库表。 首先,我们需要了解...

    设定Access数据库自增长字段初始值

    上述SQL语句创建了一个名为`tblNewOrder`的表,其中`OrderId`字段的初始值被设置为1000,每次增加10。 ##### 方法二:修改现有表的自增长字段初始值 如果表已经存在,可以通过`ALTER TABLE`语句来修改自增长字段的...

    泛微E9流程修改字段高亮显示

    当用户修改某个字段后,相应的标识字段会被设置为特定值,表示该字段已被修改。 2. **技术实现**: - 在数据库中为每个需要高亮显示的字段增加一个标志位,通常可以是布尔类型。 - 当用户提交修改后,通过ECODE...

    plsql数据库的字段表的变更

    本文将基于给定的信息——“PL/SQL数据库的字段表的变更”这一主题,深入探讨相关的知识点,包括但不限于SQL数据库的基本概念、PL/SQL语言的特点、如何在Oracle数据库(常用PL/SQL)中进行表字段的变更操作以及变更...

    oracle非数字合计,将字段中含有汉子的数据自动转换为 数字0

    例如,在`table`表中有一个名为`column_name`的字段,该字段中可能存在诸如“一千”、“二万”这样的非标准数值表示,或者干脆就是汉字、符号等非数字字符。此时,如果直接使用`SUM()`函数对该字段进行求和操作,则...

    用SQL语句查询数据库中某一字段下相同值的记录方法

    以下是两种查询数据库中某一字段下相同值的记录的方法。 **方法一:通过学号和身份证字段来查询** 这种方法推荐用于数据库执行效率高的场景。它利用了子查询和自连接的概念,通过比较同一表中不同行的学号(Sno)...

    实验3 创建Access数据库、表和修改数据表

    在Access中,可以通过“工具”->“关系”设置参照完整性,指定一个表的字段(外键)引用另一个表的主键。例如,设置两个Course表之间的关系,使得一个课程编号(Cno)对应另一课程的父编号(Cpno),这样就建立了...

    mysql把一个表某个字段的内容复制到另一张表的某个字段的SQL语句写法

    在MySQL数据库中,有时我们需要将一个表中的某个字段的数据复制到另一个表的相应字段中,以满足特定的数据迁移或同步需求。以下是一些常见的SQL语句写法来实现这一目标。 1. **LEFT OUTER JOIN** 方法: ```sql ...

    设置db2 字段自增长

    在DB2中,可以定义一个触发器,在插入新记录时自动为特定字段分配一个递增的值。 ##### 3.2 创建触发器示例 下面是一个简单的触发器示例,用于实现`user`表中`id`字段的自增长: ```sql CREATE SEQUENCE user_id_...

Global site tag (gtag.js) - Google Analytics