一个普遍的问题。我正在为 Sybase SQL Anywhere 10 进行开发。出于向后兼容的原因,我们几乎所有的存储过程都是用 Transact-SQL 编写的。使用 T-SQL 代替 Watcom 方言有什么优点或缺点吗?
问问题
4080 次
3 回答
6
TSQL 的优点:
- 与 Sybase ASE 和 Microsoft SQL Server 更好的兼容性
TSQL的缺点:
- 某些语句和功能仅在 Watcom-SQL 过程中可用。一些例子:
- 在 Watcom-SQL 中更好地控制 EXECUTE IMMEDIATE 行为
- LOAD TABLE、UNLOAD TABLE、REORGANIZE(以及其他)仅在 Watcom-SQL 中可用
- 用于循环查询结果并自动声明变量以包含值的 FOR 语句非常有用,但在 TSQL 中不可用
- 错误报告不太一致,因为假设 TSQL 过程处理自己的错误,而 Watcom-SQL 过程立即报告错误。Watcom-SQL 过程可以包含一个 EXCEPTION 子句来处理错误
- 语句不使用分号分隔,因此 TSQL 过程更难解析(和读取)。语法错误有时可能无法指向错误的实际位置
- 无法显式声明过程的结果集
- 不支持 TSQL 中的行级触发器
- 事件处理程序只能使用 Watcom-SQL 编写
SQL Anywhere T-SQL 兼容性文档可在线获取。有一些数据库选项可以更改行为以更接近您对 Sybase ASE 的期望。此外,还有一些函数可用于从一种语法转换为另一种语法。
请注意,如果您想开始将 Watcom 方言中的语句添加到现有存储过程中,则需要更改 SP 以使其完全以 Watcom 方言编写。您不能在 SP、触发器或批处理中混合语法。
于 2009-06-03T17:24:36.857 回答
3
KM 所说的——另一方面,“Watcom”方言更接近 ISO/ANSI 标准 SQL,因此方言更可能与其他一些产品相匹配,并吸引熟悉 SQL 标准的人。
于 2009-06-03T17:15:32.627 回答
1
如果您曾经尝试移植到 SQL Server(或者您在 SQL Server 上找工作),Sybase T-SQL 非常接近 SQL Server T-SQL。Sybase 和 MS 在当天就加入了,所以这些语言的核心非常相似。
于 2009-06-03T16:09:09.690 回答