请问如何在sql2008中批量转换表名?我需要从小写表名转换为大写表名。

解决方案 »

  1.   

    --这个没有写完,要睡了..按这个思路应该能实现..执行出来一句话..copy出来执行以下跑出来的这句话.就好了
    select replace((select stuff((select ','''+name+'''' from sys.tables for xml path('')),1,1,'')),',','),sp_rename  upper(')+')'
    --思路2. 定义一个表变量. (id int identity , tbname varchar(200)) insert表标量 select name from sys.tables  declare @a int =1,@c varchar(200) 
    @b = select max(id) from 表变量
    while @a<@b  --循环体,  里面的name也可以用一个变量表示!这里不修改了..睡觉了
    begin
    sp_rename select name from 表变量 where id=@a , select upper(name) from 表变量 where id=@a --@a现在是1,
    @a=@a+1
    end
      

  2.   

    --我感觉思路1 我走了.弯路,不能让你深陷其中我决定爬起来写完.
    use demo
    go
    select 'sp_rename ',''''+name+''',',''''+UPPER(name)+'''' from sys.tablessp_rename  'student', 'STUDENT'
    sp_rename  'course', 'COURSE'
    sp_rename  'sc', 'SC'
    sp_rename  'aa', 'AA'
    sp_rename  'bb', 'BB'
    sp_rename  'tbl', 'TBL'
    sp_rename  'a', 'A'
    sp_rename  'nums', 'NUMS'--把上面执行的复制出来..全部执行一下就好了..如果你显麻烦..就写个循环执行一下! 这下可以安稳的睡了
      

  3.   

      SQL server 2005 如何批量修改架构名(包括表名和存储过程名)