您指的是 Access 数据库引擎的 multivalued data types 吗?如果是这样,那么是的,这些是 ACE (2007) 版本引擎的新功能,并且在作为 Access2003 版本引擎的 Jet 4.0 中不可用。
FWIW 我在 Access2007 中使用 ANSI-92 查询模式(OLE DB,引擎类型 = 5)尝试了您的 SQL,但无法识别 MULTISET 关键字。
请注意,您可能不需要也不想要多值类型。一个特别的批评是 Access Database SQL DML 表达式服务没有被改变以考虑多值类型。另外,请看这篇文章Multivalued datatypes considered harmful:
两个 Suraj [Poozhiyil,MS Access
项目经理],我同意
全心全意地认为开发人员不会
需要使用多值字段。
懂数据库的人
已经有好办法了
实施多对多
关系,不会获得任何好处
来自多值字段。
所以,我的明确而肯定的建议是
开发人员不要使用多值
字段。他们没有什么可以提供给我们的
除了潜在的疼痛。
更新:
MULTISET 是一个正式的新数据类型
从 SQL:2003 开始,所以我
猜测添加的部分原因
它在 Access 2007 中是完全
符合 SQL 标准
这几乎很有趣。 Access 团队没有表现出对添加符合任何 SQL 标准的 SQL 语法的兴趣。
[当 SQL Server 团队为其 4.0 版本修改 Jet 时,他们希望获得 SQL-92 合规性,但被 Windows 团队阻止,因为他们的组件依赖于一些仍然不合规的功能......但那是另一个故事。访问团队拥有自己的代码库私人人员,因此他们没有这样的借口……除非 SharePoint 团队现在有不当影响?我跑题了……]
考虑一下关于 SQL2003 标准的文档中的这句话:
MULTISET 类型的值可以是
通过枚举创建
单个元素或通过提供
通过查询的元素
表达;例如,
MULTISET[1, 2, 3, 4]
或
MULTISET(
SELECT grades
FROM courses
)
...相反,多重集值可以是
在FROM 中用作表参考
使用UNNEST 运算符的子句。
访问团队没有向 ACE SQL DML 语法添加任何新表达式或任何运算符。所以,不,这与 SQL 标准无关,与 SharePoint 无关。
David W. Fenton:不,[支持
多值类型] 被添加到
ACCDB 格式(不是 ACE,如
@onedaywhen 说...)
考虑一下the Access Team's own blog的这句话:
我们添加到新的主要功能
访问引擎支持“复杂
数据”。
这绝对是一个引擎功能!