如何将SqlServer2005数据导入到Sybase

qqyatou 2011-03-17 04:20:29
开发用的SqlServer2005 结果客户那里用Sybase数据库
SqlServer数据库中有视图 存储过程 函数 都要导过去的
谢谢了
...全文
72 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-03-17
  • 打赏
  • 举报
回复
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 '''+@txtfullpath+''' -c -S"'+@Servername+'" -

U"'+@Username+'" -P"'+@Password+'"'
EXEC master..xp_cmdshell @sql

三、其它方案

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

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

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

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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