好像没有这么麻烦如果你的繁简两台服务器能够连接,通过查询分析器查看对方的表戡乱不乱码,如果不乱,直接用dts倒就可以

解决方案 »

  1.   

    楼主,简繁转换看这个就可以啦,很全
    http://community.csdn.net/Expert/topic/5124/5124605.xml?temp=.4253199
      

  2.   

    http://community.csdn.net/Expert/topic/5124/5124605.xml?temp=.4253199
    惭愧呀,
    我没看懂这个帖子,他那个到底转换一个表里的内容还是转换整个数据库,
    还是只是转换一个字符串(如果是这种,那就没多大意义了)
      

  3.   

    楼上几位给的例子,只是如何转换繁简,与一般的繁简转换工具无异而楼主要想实现的是,将数据结构及数据内容一起转换,不知可是这个意思至于繁简转换,如果不会用SQL语句来实现,也可以用网上的成型工具来实现不知道我理解的意思对吗
      

  4.   

    我的想法是这样处理:1. 生成结构脚本, 这样可以在简体系统上通过脚本把库和对象结构完整的建立起来.
    2. 将表中的数据导出为文本文件, 这步可以用BCP, 导出的文件格式设置为UNICODE.
    3. 随便找个转换工具, 把导出的文本文件转换为简体(当然, 要支持批量的文件转换)
    4. 把转换后的文件通过BCP导入到简体库
      

  5.   

    生成INSERT脚本的话, 效率并不太好, 特别是数据非常多的情况
    如果你一定要用生成脚本的方式, 参考这个工具(也许现在有新版本了, 很久没有去查过):《SQL Server 数据库脚本导出器 v2.0》
    http://www.ttxx.com/D/625a96bc0a85a7a9.htm(1)   支持所有数据类型(如binary、text、image等)
    (2)   支持表结构、索引、所有记录到SQL脚本
    (3)   支持数据库、表的浏览
    (4)   SQL语句的编辑、执行
    (5)    可备份数据库、表结构、记录
    (6)    支持用户自定义导出
    (7)    支持文档将脚本文件打包到安装程序中.在第一次运行程序的时候,执行脚本(或专门做一个系统配置的程序,来控制完成此工作),通过调用isql.exe文件完成.
    exec master..xp_cmdshell 'isql /E /i".sql文件"'
    也可以直接在程序中调用isql.exe文件.或直接将isql.exe文件集成到程序安装包中
      

  6.   

    注:
    生成脚本, 还是用SQL的企业管理器(2005为manger studio)去生成, 这样生成的脚本最完整.
    上面的那个工具生成的脚本会缺少一些关联对象, 而且无法整个库生成.
      

  7.   

    如果脚本数据与文件的交换处理方法, 则可以参考下面的存储过程下面的存储过程可以把库中的所有表生成文件, 或者是把文件导回来(注意文件名必须按照导出时生成的规则)@code 参数使用Wif exists(select 1 from sysobjects where name='File2Table' and objectproperty(id,'IsProcedure')=1)
    drop procedure File2Table
    go/*--实现数据导入/导出的存储过程 可以实现导入/导出 整个数据库/指定表 到文本文件--邹建 2003.07(引用请保留此信息)--*//*--调用示例 --导出指定表
    exec file2table @tbname=N'jobs,pub_info',@filename='c:\[@tbname].txt' --导出所有表
    exec file2table @filename='c:\[@dbname]_[@tbname].txt' --导入所有表
    exec file2table @filename='c:\[@dbname]_[@tbname].txt',@isout=0
    --*/
    create procedure File2Table
    @tbname nvarchar(4000)='',   --表名列表,如果不指定,则表示所有用户表
    @filename nvarchar(1000)='', --导出的文件名,如果不指定,导出到SQL Server的默认备份目录\[@dbname]_[@tbname].txt,其中[@dbname]在处理中会替换为数据库名,[@dbname]会用表名代替
    @isout bit=1,                --1为导出(默认),0为导入
    @username sysname='',        --用户名,如果sql不允许使用NT验证方式登录,则必须指定
    @password sysname='',        --密码
    @code char(1)=N'N'           --文件编码,可以是n,c,N,W,作用参考bcp语法(如果是数据传输需要,建议用N)
    as
    declare @s nvarchar(4000)if isnull(@code,N'') not in(N'n',N'c',N'N',N'W')
    set @code='N'--备份文件名
    if isnull(@filename,N'')=N''
    begin
    select top 1 @filename=rtrim(reverse(filename)) 
    from master.dbo.sysfiles 
    where name=N'master'
    select @filename=stuff(@filename,1,charindex('\',@filename),N'')
    ,@filename=reverse(stuff(@filename,1,charindex('\',@filename),N''))
    +N'\BACKUP\'+db_name()+N'_[@tbname].txt'
    end
    else
    set @filename=replace(@filename,N'[@dbname]',db_name())declare tb cursor local
    for
    select N'bcp "'+db_name()
    +N'.'+quotename(user_name(uid))
    +N'.'+quotename(name)
    +N'"'
    +case when @isout=1 then N' out' else N' in' end
    +N' "'
    +replace(@filename,N'[@tbname]',name)
    +N'" /'+@code
    +case when isnull(@username,N'')=N'' then N' /T'
    else N' /U"'+@username
    +N'" /P"'+isnull(@password,N'')+N'"'
    end
    from sysobjects
    where xtype=N'U' and status>=0
    and(isnull(@tbname,N'')=''
    or charindex(','+name+',',','+@tbname+',')>0)
    open tb
    fetch tb into @s
    while @@fetch_status=0
    begin
    exec master..xp_cmdshell @s,no_output
    fetch tb into @s
    end
    close tb
    deallocate tb
    go