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
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在其它数据库迁移时,不是很兼容,问题比较多,相信这样的产品慢慢会让市场淘汰掉的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。