问题是这样的,我有一个数据库,现在要把数据库中所有表中字段类型为char的修改为nvarchar,该怎么写语句呢?
坐等高手解答!这里先谢谢了!

解决方案 »

  1.   


    -------用游标可以实现!
    declare @tabname varchar(50), @colname varchar(50),@collength intdeclare roy cursor for 
    select c.name,a.name,a.length from syscolumns a,systypes b,sysobjects c
    where  a.xtype=b.xtype and b.name='char' and a.id=c.id and c.xtype='u'open roy
    fetch next from roy into @tabname,@colname,@collengthwhile @@fetch_status=0
    begin
    declare @sql varchar(1000)
    set @sql='alter table '+@tabname+' alter column '+@colname+' nvarchar('+ltrim(@collength)+')'Print @sql --先print 出来看看,再运行
    --exec(@sql)fetch next from roy into @tabname,@colname,@collength
    end
    close roy
    deallocate roy
      

  2.   

    谢谢ojuju10大哥,搞定了,有些表有索引,我把索引删除了就OK了,真的很感谢您,我又学到了一种方法。