sql server数据库资料繁体转简体的问题

iis1 2005-11-01 09:36:50

sql server数据库资料繁体转简体的问题,有没有什么工具可以把整个sql server

某个数据库里的所有资料从繁体转换为简体的?转换后各个表之间最好能保持原有的约束关系,

主键设置不便,总之就是只改表里的资料,各位有什么好方法盼望赐教!
...全文
338 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
iis1 2005-11-03
  • 打赏
  • 举报
回复
大哥,那还不如手工倒成excel,再用内码转换软件转换成简体,再倒入呢。

还有没有人知道 呀?

mastersky 2005-11-02
  • 打赏
  • 举报
回复
介绍一个笨但是有效的方法:
自己做一个程序,可以随意将要转的表,字段列出来,循环每个字段的值,将它们从繁体转换到简体。我想这样的程序对楼主来说应该没什么问题吧。

提供几个函数供楼主参考:
{内码转换}
function Big5ToGB(BIG5Str : String): AnsiString;
{进行big5转GB内码}
var
Len: Integer;
pBIG5Char: PChar;
pGBCHSChar: PChar;
pGBCHTChar: PChar;
pUniCodeChar: PWideChar;
begin
//String -> PChar
pBIG5Char := PChar(BIG5Str);
Len := MultiByteToWideChar(950,0,pBIG5Char,-1,nil,0);
GetMem(pUniCodeChar,Len*2);
ZeroMemory(pUniCodeChar,Len*2);
//Big5 -> UniCode
MultiByteToWideChar(950,0,pBIG5Char,-1,pUniCodeChar,Len);
Len := WideCharToMultiByte(936,0,pUniCodeChar,-1,nil,0,nil,nil);
GetMem(pGBCHTChar,Len*2);
GetMem(pGBCHSChar,Len*2);
ZeroMemory(pGBCHTChar,Len*2);
ZeroMemory(pGBCHSChar,Len*2);
//UniCode->GB CHT
WideCharToMultiByte(936,0,pUniCodeChar,-1,pGBCHTChar,Len,nil,nil);
//GB CHT -> GB CHS
LCMapString($804,LCMAP_SIMPLIFIED_CHINESE,pGBCHTChar,-1,pGBCHSChar,Len);
Result := String(pGBCHSChar);
FreeMem(pGBCHTChar);
FreeMem(pGBCHSChar);
FreeMem(pUniCodeChar);
end;

function GBToBig5(GBStr : String): AnsiString;
{进行GB转BIG5内码}
var
Len: Integer;
pGBCHTChar: PChar;
pGBCHSChar: PChar;
pUniCodeChar: PWideChar;
pBIG5Char: PChar;
begin
pGBCHSChar := PChar(GBStr);
Len := MultiByteToWideChar(936,0,pGBCHSChar,-1,nil,0);
GetMem(pGBCHTChar,Len*2+1);
ZeroMemory(pGBCHTChar,Len*2+1);
//GB CHS -> GB CHT
LCMapString($804,LCMAP_TRADITIONAL_CHINESE,pGBCHSChar,-1,pGBCHTChar,Len*2);
GetMem(pUniCodeChar,Len*2);
ZeroMemory(pUniCodeChar,Len*2);
//GB CHT -> UniCode
MultiByteToWideChar(936,0,pGBCHTChar,-1,pUniCodeChar,Len*2);
Len := WideCharToMultiByte(950,0,pUniCodeChar,-1,nil,0,nil,nil);
GetMem(pBIG5Char,Len);
ZeroMemory(pBIG5Char,Len);
//UniCode -> Big5
WideCharToMultiByte(950,0,pUniCodeChar,-1,pBIG5Char,Len,nil,nil);
Result := String(pBIG5Char);
FreeMem(pBIG5Char);
FreeMem(pGBCHTChar);
FreeMem(pUniCodeChar);
end;

function GBKChtToChs(GBStr : String): AnsiString;
{进行GBK繁体转简体}
var
Len: Integer;
pGBCHTChar: PChar;
pGBCHSChar: PChar;
begin
pGBCHTChar := PChar(GBStr);
Len := MultiByteToWideChar(936,0,pGBCHTChar,-1,nil,0);
GetMem(pGBCHSChar,Len*2+1);
ZeroMemory(pGBCHSChar,Len*2+1);
//GB CHS -> GB CHT
LCMapString($804,LCMAP_SIMPLIFIED_CHINESE,pGBCHTChar,-1,pGBCHSChar,Len*2);
Result := String(pGBChsChar);
//FreeMem(pGBCHTChar);
FreeMem(pGBCHSChar);
end;

function GBKChsToCht(GBStr : String): AnsiString;
{进行GBK简体转繁体}
var
Len: Integer;
pGBCHTChar: PChar;
pGBCHSChar: PChar;
begin
pGBCHSChar := PChar(GBStr);
Len := MultiByteToWideChar(936,0,pGBCHSChar,-1,nil,0);
GetMem(pGBCHTChar,Len*2+1);
ZeroMemory(pGBCHTChar,Len*2+1);
//GB CHS -> GB CHT
LCMapString($804,LCMAP_TRADITIONAL_CHINESE,pGBCHSChar,-1,pGBCHTChar,Len*2);
Result := String(pGBCHTChar);
FreeMem(pGBCHTChar);
//FreeMem(pGBCHSChar);
end;
iis1 2005-11-01
  • 打赏
  • 举报
回复
是这样的,我们公司是台湾的,原来用繁体操作系统,数据库自然也是繁体的,
现在上新的erp,需要改成简体的,可是原有的数据库是繁体的,不知道怎么转换过来
新鲜鱼排 2005-11-01
  • 打赏
  • 举报
回复
學習
iis1 2005-11-01
  • 打赏
  • 举报
回复
我就是想问问可以用什么软件可以转换,内码转换的软件是有的,比如ConvLite,但是数据库不像word,txt这些文件呀,我试着转换sql server 的备份文件,但是转换之后备份文件不能还原了。

转换sql文件到可以,可是怎么把整个sql server数据库转换成一个sql文件呢?
子陌红尘 2005-11-01
  • 打赏
  • 举报
回复
提供一个思路:用外部程序实现内码转换功能,在SQL Server 2000里封装成扩展存储过程。
子陌红尘 2005-11-01
  • 打赏
  • 举报
回复
SQL Server 2000本身不支持这样的转换,需要通过外部简繁内码转换程序转换数据。
点点星灯 2005-11-01
  • 打赏
  • 举报
回复
在前台转换吧,SQL Server可没这么牛的功能
iis1 2005-11-01
  • 打赏
  • 举报
回复
有没有人知道呀?

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧