我有一个数据库,里面有很多个表,其中有很多表的内容里都有aaa(不是全部表都有aaa)。我想将这个数据库的所有表里面的aaa换成bbb,这要怎么实现呢?请详细叙说...谢谢

解决方案 »

  1.   

    用as啊,比如Select 字段1 as 编号 From 表1
      

  2.   

    还是用一个存储过程,写多条sql方便
      

  3.   

    可能我没有说清楚...那个aaa并不是一个字段名,只是一个已写入的内容...
    如 
      name   sex   number
        aaa    男  15915915912
      111    女  13654875698
       ……
    假如很多表都有‘aaa’,我想把它全换成bbb,那要怎么做?
      

  4.   

    那你的表里的'aaa'所在的字段名称是什么?
      

  5.   


    /*
    funcation:将某数据库中所有表中的某个具体的字段修改为某值exec updateTable '名称','文燕专'
    create by:文燕专
    date:2009-4-9
    */create procedure updateTable
    @colName nvarchar(20),
    @colValue nvarchar(20)
    as
    begindeclare cur cursor for
    select name from sysobjects where type = 'u'declare @name nvarchar(20)open cur
    fetch next from cur into @name
    while @@fetch_status =0
    begin
    if exists(select 1 from syscolumns where id = (select id from sysobjects where type = 'u' and name = @name) and name=@colName)
    begindeclare @sql nvarchar(4000)
    set @sql = ''set @sql = 'update ' + @name + ' set ' + @colName + ' = ''' + @colValue + ''''exec(@sql)end
    fetch next from cur into @name
    endclose cur
    deallocate curend
      

  6.   

    感谢yygyogfny...但这也太高深了吧,水平有限,看不懂耶....
      

  7.   


    這個不能直接用~~
    update語句要調整一下
    最好不要直接用=
    用replace的方式
      

  8.   

    sp_msforeachtable 'update ? set aaa= bbb'
      

  9.   

    yygyougfny 你是不是玩武林外传啊
      

  10.   

    楼主,我专门为你量身打造的一个存储过程代码如下,
    create proc aa  --创建存储过程aa
    (
    @tablename varchar(50), --这个是你的表名字
    @bbb varchar(50)     --要把name修改成为什么
    )
    as 
    begin --开始
    declare @name varchar(100)  --定义一个name接受你表里边的name
    declare @id int   --定义一个id接受你表里边的id
    declare cursor youbiao for select @name=name,@id=id from @tablename --创建一个游标 
    open youbiao
    fetch next from youbiao into @name,@id  --把查询到得name 和id 放入@name和@id中
    while @@fetch_status =0   --开始循环
    begin
    update @tablename set name=@bbb where name=@name and id=@id   --修改者个表(@tablename) set name=你要修改的,
    fetch next from youbiao into @name,@id --循环
    end
    close youbiao  --关闭游标
    deallocate youbiao  --释放游标
    end --结束
    exec aa 第一个参数是表的名字,第二个参数是你要把name修改为什么样子,
    执行者个过程的前提是你要执行的表的架构里边要有name 和id这两个字段 代码是手动写的,也创建具体数据库来进行试验,但是思路是正确的,
    仅供参考
      

  11.   

    给LZ说一下思路,其实就是双循环嵌套,第一层循环所有的表,第二层循环所有的字段,
    然后把内容为aaa的字段值修改为bbb。
    然后就结束了。
    以上是思路,希望楼主能够自己写出代码出来。不断进步。
      

  12.   

    感谢yangniao,有心了...我慢慢研究一下了...