如何由Sybase向SQL Server移植数据库
2009-05-12 20:53:12来源:未知 阅读 ()
最近参与了将一个Sybase数据库移植到Microsoft SQL Server 2000上的项目,我在这一项目上获得的经验,将对Sybase数据库管理员把Sybase数据库移植到SQL Server 2000平台上有一定的帮助。
尽管二者之间的一些差别是相当大的,例如Sybase数据库管理系统中的存储过程在SQL Server就不能被编译,而其它差别则不太大。在完成这一转换前,对脚本文件和存储过程中编程逻辑的行为和结果进行测试是很有必要的。
在下面的部分中,我们将讨论这二种数据库系统之间的一些主要的不同点,在移植的规划阶段,我们必须仔细研究这些区别。
数据兼容模式
对SQL Server 2000和Sybase之间的一些兼容性差别的一个临时性解决方案是改变SQL Server中的数据库兼容性级别,使之与Sybase相符。为此,我们可以使用sp_dbcmptlevel存储过程。
下面表中的语句和结果显示出不同版本数据库之间的差别:
注意:
1、当兼容性模式被设置为70时,下面的词汇不能被用作对象名和标识符:BACKUP、DENY、PRECENT、RESTORE和TOP。
2、当兼容性模式被设置为65时,下面的词汇不能被用作对象名和标识符:AUTHORIZATION、CASCASE、CROSS、DISTRIBUTED、ESCAPE、FULL、INNER、JOIN、LEFT、OUTER、PRIVILEGES、RESTRICT、RIGHT、SCHEMA和WORK。
下面是sp_dbcmptlevel的语法:
sp_dbcmptlevel [[@dbname=] name][,[@new_cmptlevel=]version]
@dbname是用于检查和改变兼容性水平的数据库名字。
@new_cmptlevel决定数据库被设置的兼容性水平(将它设置为70、65、60,缺省值为NULL)。
例如:
sp_dbcmptlevel pubs
这一行代码返回下面的结果:
The current compatibility level is 70.(当前的兼容性级别为70。)
现在我们来看一下另外一个例子:
sp_dbcmptlevel pubs, 65
它返回如下的结果:
DBCC execution completed. (DBCC执行结束。)
如果DBCC打印出错误信息,则需要与系统管理员联系。我们可以使用rerunsp_dbcmptlevel验证pubs数据库是否修改得正确:
sp_dbcmptlevel pubs
它返回下面的结果:
The current compatibility level is 65(当前的兼容性级别为65。)
除了上面的例子外,兼容性级别的差别还扩展到了保留字。Sybase和SQL Server都有许多不能被用作数据库中对象名字的的保留字,二种产品的保留字相似,但并不完全相同。
由于能够在Sybase中使用的对象可能不能在SQL Server中使用,这一问题使得由Sybase向SQL Server的移植凭添了许多困难。下面是在SQL Server中是保留字,而在Sybase中不是保留字的词汇清单。
注意:名字为下列清单中词汇的Sybase数据库中的对象在移植到SQL Server数据库时必须换为其它名字。
BACKUP COLUMN COMMITTED CONTAINS CONTAINSTABLE
CROSS CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER
DENY DISTRIBUTED FILE FLOPPY FREETEXT
FREETEXTTABLE FULL IDENTITYCOL INNER JOIN
事务管理模式:
Sybase SQL Server
Set chained [ on : off ] Set implicit_transactions [on : off ]
在Sybase中使用下面的代码判断事务模式:
SELECT @@tranchained
GO
下面是可能返回的结果:
0 表明使用的是非链锁式事务模式。
1 表明连接运行在链锁模式下。
在SQL Server中使用下面的代码判断事务模式:
IF (@@options & 2) > 0
PRINT on
ELSE
PRINT off
下面是可能的返回结果:
0 off
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 如何批量执行sql语句 2020-02-29
- sql还原数据库的教程 2020-02-29
- SQL如何导入导出Excel数据 2020-02-29
- 如何使用sql中的case when语法 2020-02-29
- sql语句怎么实现分离和附加数据库 2020-02-09
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash