批量将一个库里的所有表里的char改成nchar类型

原创 2004年02月11日 17:36:00

/*--将所有的表中,数值类型由char,varchar改为nchar,nvarchar 的存储过程

--邹建 2004.02(引用请保留此信息)--*/  
 
/*--调用示例:  
           exec  p_set  
--*/  
if  exists  (select  *  from  dbo.sysobjects  where  id  =  object_id(N'[dbo].[p_set]')  and  OBJECTPROPERTY(id,  N'IsProcedure')  =  1)  
drop  procedure  [dbo].[p_set]  
GO  
 
create  procedure  p_set  
as  
declare  tb  cursor  for  
SELECT  sql='alter  table  ['+d.name  
           +']  alter  column  ['+a.name+']  n'  
           +b.name+'('+cast(a.length*2  as  varchar)+')'  
FROM  syscolumns  a  
           left  join  systypes  b  on  a.xtype=b.xusertype  
           inner  join  sysobjects  d  on  a.id=d.id    and  d.xtype='U'  and    d.name<>'dtproperties'  
where    
           b.name  in('char','varchar')  
           and    
           not  exists(SELECT  1  FROM  sysobjects  where  xtype='PK'  and  name  in  (  
                       SELECT  name  FROM  sysindexes  WHERE  indid  in(  
                                   SELECT  indid  FROM  sysindexkeys  WHERE  id  =  a.id  AND  colid=a.colid  
                       )))                        --主键不能修改  
order  by  d.name,a.name  
 
declare  @sql  varchar(1000)  
open  tb  
fetch  next  from  tb  into  @sql  
while  @@fetch_status  =  0  
begin  
           exec(@sql)  
           fetch  next  from  tb  into  @sql  
end  
close  tb  
deallocate  tb  
go  

批量将一个库里的所有表里的char改成nchar类型

/*--将所有的表中,数值类型由char,varchar改为nchar,nvarchar 的存储过程--邹建 2004.02(引用请保留此信息)--*/   /*--调用示例:            ...
  • chenzhiya
  • chenzhiya
  • 2008年01月03日 15:34
  • 152

SQL学习---将所有的char,varchar改为nchar,nvarchar

CREATE PROC p_ToUnicode @type tinyint=0 --修改方式,0=仅查询可修改情况,1=仅所有列可修改时才修改,2=修改可修改列,报告不可修改列 AS SET NOC...
  • liguoming05
  • liguoming05
  • 2013年09月18日 15:05
  • 1086

数据库中NCHAR 、CHAR等的区别

对于程序中的string型字段,SQLServer中有char、varchar、nchar、nvarchar四种类型来对应(暂时不考虑text和ntext),开建立数据库中,对这四种类型往往比较模糊,...
  • tongailing
  • tongailing
  • 2011年04月01日 15:58
  • 5277

Oracle字符串类型char,nchar,varchar2,nvarchar2区别

网上对于这几个字符串类型的对比文章很多,有些还对比错了。我现在写这篇文章,不是为了批评什么。我只是把书本中看到的知识简单总结出来,再偷偷打上[原创]标签而已... 很多新手可能不知道char和var...
  • laizhenhai88
  • laizhenhai88
  • 2013年11月11日 14:19
  • 2193

数据库中char varchar nchar nvarchar的区别

数据库中char varchar nchar nvarchar的区别           我们在进行数据库的设计的时候,很多情况下表中的字段都是用的是字符串类型的数据,其中就有四种选择charva...
  • nangeali
  • nangeali
  • 2016年04月12日 20:35
  • 1312

char、varchar、text和nchar、nvarchar、ntext的区别

1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充。2、VARC...
  • ice_spar
  • ice_spar
  • 2007年05月23日 21:27
  • 2420

将一个库里的一张表中的数据复制到另一个库的一张表中

首先,要在A和B数据库中创建两个同名同结构的表,其中B数据库的表为目标表.   private static void SQLCH()     {         SqlConnection ...
  • meng6098
  • meng6098
  • 2012年06月20日 11:18
  • 1430

char(nchar)与varchar(nvarchar)的区别以及选择

char(或是nchar)与varchar(或是nvarchar)是数据库中最常见的用于存储字符数据的数据类型,由于它们大多...
  • zzzmmmkkk
  • zzzmmmkkk
  • 2009年07月22日 12:22
  • 1825

Oracle 关于 CHAR,VARCHAR,VARCHAR2,nchar,nvarchar 4者的区别使用

有没有人遇到过,疑惑过关于varchar和varchar2的使用,到底用哪个?为什么区分的问题? 多google一下,差不多就明白了,我就参考别人的讲解一下。 先说,char和nchar的区别。 ...
  • Ghohankawk
  • Ghohankawk
  • 2013年12月13日 13:02
  • 835

char(10)和nchar(10)的区别

char支持的是本地默认编码,一般只支持中文和英文还有少部分日语和韩语等。nchar是unicode编码,是兼容世界上几乎所有语言的,当然也支持中文。 nchar占用空间比char大。比如char格式...
  • zmq5411
  • zmq5411
  • 2015年05月05日 13:54
  • 1083
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:批量将一个库里的所有表里的char改成nchar类型
举报原因:
原因补充:

(最多只允许输入30个字)