sqlserver与sybase数据库移植问题

MSsql与sybase数据库移植方案一:

1、在sqlserver2000的数据库服务上安装sybase客户端软件,这里主要是安装用SYBASE OLEDB PROVIDER驱动程序。
2、配置sqlserver2000中的连接服务器:
企业管理器—》安全性—》连接服务器—》右键新建连接服务器—》定义连接名称; 选其他数据源; 指定程序名称为:SYBASE

OLEDB PROVIDER;
产品名称可不填; 数据源指<servername>:<端口号>,如:yanfa:5000; 提供程序字符串按以下格式填写:User

ID=username;Password=userpasswd(或者按如下格式:UID=username;PWD=userpasswd),这里的用户名和密码对应所要连接的

SYBASE数据库中的用户名和密码
目录填要访问的数据库名称;
—》 安全性标签页里:设置用此安全上下文进行,并录入SYBASE的数据库用户名和密码
—》服务器选项标签页可默认—》确定。
3、准备工作全部完成!在sqlserver企业管理器—》安全性—》连接服务器打开刚建好的连接服务器—》点击表,即可在右边窗口

看到该SYBASE数据库用户拥有的的所有表名,但在这里还并不能查看表的记录,这个需要在sqserver的查询分析器中用具体sql实

现!访问表时,使用格式为: [连接服务器名].[数据库名].[SYBASE用户].[表名]。更详细具体的使用这里不再赘述。
4、用查询语句导入sybase数据库,如:
insert into sybase.usermanager.dbo.usergroup
select * from usergroup

MSsql与sybase数据库移植方案二:

1、在sybase数据库系统里建与MSsqlserver相同的数据库名及表结构,
创建时每个数据库大初始大小为600M,设成自动增长模式,每次增长为100M.

2、考虑到text字段类型在sybase15与sqlserver2000版本不兼容的问题,我们用mssql和sybase中的bcp进行数据导入导出;

1)先从sqlserver中把数据里的每张表用bcp工具导出成txt文本
bcp "database.owner.table1" out "table1.txt" -c -U"user" -P"password" -t"#|#" -r"#$#"

2)再把导出文件拷贝到sybase服务器上,用sybase的bcp工具把文本导入sybase数据库
bcp "database.owner.table1" in "table1.txt" -c -U"user" -P"password" -t"#|#" -r"#$#"

如果表很多的话可,以bcp写成动态语句,如下:

set   @sql=   'bcp   "select   *   from   dbname..['+@tbname+']   "   queryout      -c   -S""   -

U""   -P"  
EXEC   master..xp_cmdshell   @sql  

三、其它方案

1)、也可以sqlserver的TDS导入导出工具,不过在从sqlserver导入sybase时,text类型的字段会报错,无法导入,其它类型的字段没有问题,在sqlserver2005里也会出现一些莫名连接错误,TDS断掉退出。笔者到现在也没弄清,用DTS导入数据时怎么处理text类型的字段。

2)、还可以用第三方软件操作,有一种DBD的工具好像也可以,但是要有完整的功能的需要会费的。如果有能力还可自己编写导入软件。

总之:感觉sybase在其它数据库迁移时,不是很兼容,问题比较多,相信这样的产品慢慢会让市场淘汰掉的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值