我想把表里的一种数据类型改成另一种
nchar(100)--->nvarchar(100)
或者修改数据库中所有的一种数据类型改成另一种

解决方案 »

  1.   


    CREATE TABLE Table( column_a INT )ALTER TABLE Table ALTER COLUMN column_a DECIMAL (5, 2)
      

  2.   

    用下面的吧,与类型相关的存储过程,程序等自己要小心,下面能改类型,不是直接修改系统。
    declare i cursor for
    select a.name tab_name,b.name col_name,c.name type_name from sysobjects a,syscolumns b,systypes c where a.id=b.id and b.type=c.type and a.type='u' and c.name='nchar' --and b.length=100*2
    open i
      declare @tab_name varchar(50),@col_name varchar(50),@type_name varchar(50)
      fetch next  from i into @tab_name,@col_name,@type_name      
        exec('alter table '+@tab_name+' alter column ['+@col_name+'] nvarchar(100)')
      while (@@fetch_status=0)
      begin
        fetch next from i into @tab_name,@col_name,@type_name
        exec('alter table '+@tab_name+' alter column ['+@col_name+'] nvarchar(100)')    
      end  
    close i
    deallocate i