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在其它数据库迁移时,不是很兼容,问题比较多,相信这样的产品慢慢会让市场淘汰掉的。

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...