由sybase向sql server移植数据库--

由sybase向sql server移植数据库--

ID:21965077

大小:63.00 KB

页数:5页

时间:2018-10-25

由sybase向sql server移植数据库--_第1页
由sybase向sql server移植数据库--_第2页
由sybase向sql server移植数据库--_第3页
由sybase向sql server移植数据库--_第4页
由sybase向sql server移植数据库--_第5页
资源描述:

《由sybase向sql server移植数据库--》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、由Sybase向SQLServer移植数据库>>  简介  我最近参与了将一个Sybase数据库移植到MicrosoftSQLServer2000上的项目,我在这一项目上获得的经验,将对Sybase数据库管理员把Sybase数据库移植到SQLServer2000平台上有一定的帮助。  尽管二者之间的一些差别是相当大的,例如Sybase数据库管理系统中的存储过程在SQLServer就不能被编译,而其它差别则不太大。在完成这一转换前,对脚本文件和存储过程中编程逻辑的行为和结果进行测试是很有必要的。  在下

2、面的部分中,我们将讨论这二种数据库系统之间的一些主要的不同点,在移植的规划阶段,我们必须仔细研究这些区别。  数据兼容模式  对SQLServer2000和Sybase之间的一些兼容性差别的一个临时性解决方案是改变SQLServer中的数据库兼容性级别,使之与Sybase相符。为此,我们可以使用sp_dbcmptlevel存储过程。  下面表中的语句和结果显示出不同版本数据库之间的差别:  (Untitled-1)  注意:  1、当兼容性模式被设置为70时,下面的词汇不能被用作对象名和标识符:BAC

3、KUP、DENY、PRECENT、RESTORE和TOP。  2、当兼容性模式被设置为65时,下面的词汇不能被用作对象名和标识符:AUTHORIZATION、CASCASE、CROSS、DISTRIBUTED、ESCAPE、FULL、INNER、JOIN、LEFT、OUTER、PRIVILEGES、RESTRICT、RIGHT、SCHEMA和NMITTEDCONTAINSCONTAINSTABLECROSSCURRENT_DATECURRENT_TIMECURRENT_TIMESTAMPCURRENT

4、_USERDENYDISTRIBUTEDFILEFLOPPYFREETEXTFREETEXTTABLEFULLIDENTITYCOLINNERJOIN  事务管理模式  SybaseSQLServer  Setchained[on:off]Setimplicit_transactions[on:off]  在Sybase中使用下面的代码判断事务模式:  SELECTtranchained  GO  下面是可能返回的结果:  0表明使用的是非链锁式事务模式  1表明连接运行在链锁模式下  在SQLSer

5、ver中使用下面的代码判断事务模式:  IF(options2)>0 PRINTonELSE PRINToff  下面是可能的返回结果:  0off  >0on  隔离水平  在一个关系数据库这样的多线程应用软件中,数据库引擎对运行的进程间的数据是如何被隔离的管理是非常重要的,在表示隔离水平时,Sybase和SQLServer的语法是不同的。下面的表格表明了Sybase和SQLServer在表示隔离水平时的差别。  SybaseSQLServer0READUNMITTED1READMITT

6、ED2REPEATABLEREAD3SERIALIZABLE  游标语法  二种产品中存储过程的创建和执行基本相似,但在移植时,游标语句中的一些例外是我们应当注意的。下面是一个例子:  CREATEPROCEDUREsql_cursorASDECLARElnamechar(20),fnamechar(20)DECLAREmycursorCURSORFORSELECTau_lname,au_fnameFROMauthorsOPENmycursorFETCHFROMmycursorINTOlname,fn

7、am123下一页>>>>这篇文章来自..,。emycursorINTOlname,fname/***这里应当是一些业务逻辑*/ENDCLOSEmycursorDEALLOCATE/*Sybase数据库在这里需要CURSOR这个词*/mycursor  SybaseSQLServer  Fetch命令执行成功00  Fetch命令执行失败1-2  没有可存取的记录了2-1  退回触发器  SQLServer中不存在这个命令,因此在向SQLServer移植时,使用了ROLLBACKTRIGGER命令的Sy

8、base存储过程必须被进行修改。在修改带有触发器的数据库表中的数据时,使用ROLLBACKTRIGGER命令容易引起误解,一个ROLLBACKTRIGGER命令只退回触发器以及触发触发器的数据修改,如果已经被提交了,则事务的其它部分会继续,被写到数据库中。因此,事务中的所有语句可能没有被成功地完成,但数据已经被提交了。  下面是Sybase数据库中一个使用ROLLBACKTRIGGER的样例触发器:  CREATETABLEtable1(aint,bin

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。