限制
本部分介绍 ODBC 桌面数据库驱动程序在以下部分的限制:
函数限制
函数 |
限制 |
聚合函数 |
聚合函数和非聚合列引用不能同时用作单个 SQL 语句的参数。 |
标量函数 |
仅使用 ODBC 规范格式支持标量函数。 |
设置函数 |
(AVG 、MAX 、 MIN 和 SUM ) 集函数不支持DISTINCT 关键字 (keyword) 。 |
排序 |
子句、子句SELECT DISTINCT 、ORDER BY 语句或外部联接中GROUP BY 排序键的最大长度为 255 字节;排序行中所有排序键的最大长度为 65,500 字节。 |
CONVERT |
类型转换失败导致受影响的列设置为 NULL 。
DATE 和 TIMESTAMP 数据类型不能转换为另一种数据类型 (或函数本身) CONVERT 。 |
语句限制
语句 |
限制 |
ALTER TABLE |
有关详细信息,请参阅 ALTER TABLE 语句限制。 |
CALL |
不支持将表达式作为被调用过程的参数, (应用于 Microsoft Access 驱动程序) 。 |
CREATE INDEX |
有关详细信息,请参阅 CREATE INDEX 语句限制。 |
CREATE TABLE |
有关详细信息,请参阅 CREATE TABLE 语句限制。 |
DELETE |
有关详细信息,请参阅 DELETE 语句限制。 |
DROP INDEX |
(DROP INDEX 适用于 Microsoft Excel 或文本驱动程序) ,不支持语句。 |
DROP TABLE |
使用 Microsoft Excel 5.0、7.0 或 97 驱动程序时, DROP TABLE 语句会清除工作表,但不删除工作表名称。 由于工作簿中仍然存在工作表名称,因此无法创建同名的另一个工作表。 |
INSERT |
有关详细信息,请参阅 INSERT 语句限制。 |
SELECT DISTINCT |
关键字 (keyword) DISTINCT 不适用于二进制数据。 |
SELECT |
有关详细信息,请参阅 SELECT 语句限制。 |
UPDATE |
有关详细信息,请参阅 UPDATE 语句限制。 |
子句、类型和其他限制
子句或类型 |
限制 |
列名 |
有关详细信息,请参阅 列名称限制。 |
数据类型 |
有关详细信息,请参阅 数据类型限制。 |
日期算术 |
不支持从DATE 数据类型中减去DATE 数据类型的日期算术。 |
标识符 |
有关详细信息,请参阅 标识符限制。 |
索引名称 |
使用 Paradox 驱动程序时,主索引的名称必须与定义它所基于的表相同。 其他唯一或非唯一索引必须与定义它们所基于的表具有相同的名称。 |
参数化查询 |
使用 Microsoft Access 驱动程序时,可以使用以下语法调用参数化查询: CALL query-name [ ( parameter [ , parameter ] ... ) ]。 |
保留关键字 |
有关详细信息,请参阅保留关键字 (keyword) 限制。 |
AND 谓词 |
最多支持 40 个。 |
DISTINCT 关键字 |
Microsoft Access) (字段或 Memo dBASE) (字段不受支持Long Text 。 |
FROM clause |
子句中 FROM 的最大表数为 16。 |
HAVING clause |
子句中 HAVING 的最大搜索条件数为 40。 |
LIKE 谓词 |
有关详细信息,请参阅 LIKE 谓词限制。 |
NOT NULL |
NOT 不支持 语句中的 CREATE TABLE NULL 约束。 |
ORDER BY clause |
SELECT 如果语句包含GROUP BY 子句和ORDER BY 子句,则ORDER BY 子句只能包含结果集中的列或子句中的GROUP BY 表达式。 |
表名 |
有关详细信息,请参阅 表名称限制。 |
表引用 |
任何查询语句中最多可以包含 16 个表引用。 |
视图 |
dBASE、Microsoft Excel、Paradox 或文本驱动程序不支持。 |
WHERE clause |
子句中 WHERE 的最大子句数为 40。
LONGVARBINARY 和 LONGVARCHAR 列可以与长度最多 255 个字符的文本进行比较,但不能使用参数进行比较。 |
WHERE CURRENT OF clause |
不支持。 |
字符串 |
有关详细信息,请参阅 字符串限制。 |