科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道由Sybase向SQL Server移植数据库

由Sybase向SQL Server移植数据库

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

我最近参与了将一个Sybase数据库移植到Microsoft SQL Server 2000上的项目...

作者:刘彦青编译 来源:yesky 2007年10月23日

关键字: SQL Server

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共3页)

事务管理模式

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
>0 on

  隔离水平

  在一个关系数据库这样的多线程应用软件中,数据库引擎对运行的进程间的数据是如何被隔离的管理是非常重要的,在表示隔离水平时,Sybase和SQL Server的语法是不同的。下面的表格表明了Sybase和SQL Server在表示隔离水平时的差别。

Sybase SQL Server

0 READ UNCOMMITTED
1 READ COMMITTED
2 REPEATABLE READ
3 SERIALIZABLE

  游标语法

  二种产品中存储过程的创建和执行基本相似,但在移植时,游标语句中的一些例外是我们应当注意的。下面是一个例子:

CREATE PROCEDURE sql_cursor AS
DECLARE @lname char(20), @fname char(20)
DECLARE mycursor CURSOR FOR
SELECT au_lname, au_fname FROM authors
OPEN mycursor
FETCH FROM mycursor INTO @lname, @fname
WHILE @@ FETCH_STATUS = 0
/* Sybase数据库使用@SQLSTATUS而不是@@ FETCH_STATUS */
BEGIN
FETCH FROM mycursor INTO @lname, @fname
/*
** 这里应当是一些业务逻辑
*/
END
CLOSE mycursor
DEALLOCATE /* Sybase数据库在这里需要CURSOR这个词 * / mycursor

Sybase SQL Server

Fetch命令执行成功 0 0
Fetch命令执行失败 1 -2
没有可存取的记录了 2 -1

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章