如何由Sybase向SQL Server移植数据库(2)
作者:chinaitlab.com 发布时间:2009-01-20 15:56:00
除了上面的例子外,兼容性级别的差别还扩展到了保留字。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
>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


猜你喜欢
- Python程序能用很多方式处理日期和时间。转换日期格式是一个常见的例行琐事。Python有一个 time 和 calendar 模组可以帮
- 组合模式我们把Composite模式看成一个复杂的属性结构,其实基本有三种角色:树干(定义一些操作树叶leaf的操作),树枝(树干上有很多树
- Go 语言相比Java等一个很大的优势就是可以方便地编写并发程序。Go 语言内置了 goroutine 机制,使用goroutine可以快速
- 要想从命令行启动mysqld服务器,你应当启动控制台窗口(或“DOS window”)并输入命令:C
- 背景介绍最近遇到一个需求,大致就是要获取某个小程序上的数据。心想小程序本质上就是移动端加壳的浏览器,所以想到用Python去获取数据。在网上
- 通过两种不同的方法实现用js来对checkbox进行全选和反选: 方法一: 1:js实现checkbox的 全选 功能: function
- MySQL 8.0.30官网下载安装教程此文面向于学习mysql数据库的小白,仅进行了详细的基本配置。第一步(官网下载安装)官网下载安装助手
- python opencv实现目标跟踪python-opencv3.0新增了一些比较有用的 * 算法这里根据官网示例写了一个 * 类程序只能
- 本文由伯乐在线 - 敏捷翻译的史莉萍翻译自《Creating an Effective Color-Scheme for Web Desig
- 1、os.path 方法# -*- coding: utf-8 -*-# !/usr/bin/pythonimport osimport s
- 这篇文章主要介绍了JS图片懒加载的优点及实现原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以
- 代码如下:using System; using System.Data; using System.Configuration
- 我们已经看到使用WHERE子句的SQL SELECT命令来从MySQL表获取数据。但是,当我们试图给的条件比较字段或列的值为NULL,它不能
- 目录1.数组重塑1.1 一维数组重塑1.2 多维数组重塑2.数组转置1.数组重塑所谓数组重塑就是更改数组的形状。比如将原来3行4列的数组重塑
- 这次主要记录在windows下嵌入 python 解释器的过程,程序没有多少,主要是头文件与库文件的提取。程序平台:windows10 64
- # 递归满足的条件# 1.自己调用自己# 2.必须有一个明确的结束条件# 优点:逻辑简单\定义简单# 缺点:防止内存消耗过多,容易导致栈溢出
- Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形
- 2005转到2000的步骤 1. 生成for 2000版本的数据库脚本 2005 的manger s
- 在Python面向对象编程中的类构建中,有时候会遇到@classmethod的用法。总感觉有这种特殊性说明的用法都是高级用法,在我这个层级的
- 1.函数就是对象,而函数名是指向函数对象的指针,不会与某个函数绑定。 2.函数没有重载(函数重载:同一个函数名对应着多个函数的实现.) Fo