Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (中文) » SQL Anywhere 服务器 - SQL 的用法 » SQL 方言和兼容性 » 编写兼容的 SQL 语句

 

编写可移植的 SQL 的一般原则

在编写将在多个数据库管理系统上使用的 SQL 语句时,应该使您的 SQL 语句尽可能地清晰。即使多个服务器支持给定的 SQL 语句,每个系统上的缺省行为也可能不相同。

在 SQL Anywhere 中,数据库服务器和 SQL 预处理器 (sqlpp) 可标识作为服务商扩充、不符合特定 ISO/ANSI SQL 标准、或者 UltraLite 不支持的 SQL 语句。此功能称为 SQL Flagger。请参见使用 SQL Flagger 测试 SQL 遵从性

编写兼容的 SQL 语句适用的一般原则包括:

  • 包括所有可用选项,而不是使用缺省行为。

  • 使用括号来明确语句中的执行顺序,而不是对运算符采用相同的缺省优先级。

  • 使用在变量名前加 @ 符号这一 Transact-SQL 约定,以实现 Adaptive Server Enterprise 可移植性。

  • 在过程、触发器和批处理中声明变量和游标要紧跟在 BEGIN 语句之后。这是 SQL Anywhere 的要求,尽管 Adaptive Server Enterprise 允许在过程、触发器或批处理中的任意位置进行声明。

  • 避免将 Adaptive Server Enterprise 或 SQL Anywhere 中的保留字用作数据库中的标识符。

  • 采用大命名空间。例如,要确保每个索引都应有唯一的名称。