Microsoft Access 2003是否包含集或多集? [英] Does Microsoft Access 2003 contain sets or multisets?

查看:142
本文介绍了Microsoft Access 2003是否包含集或多集?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试确认或拒绝是否可以将MS Access 2003中的表列定义为一个集合。在Office 2007中实现 ,您可以在查询/查找中定义列以具有多选列表,但此功能似乎对新的Access 2007文件格式是唯一的只要我可以确定。

I'm trying to confirm or deny whether you can define a table column in MS Access 2003 as a set. It seems this is implemented in Office 2007 - you can define a column to have a 'multi-select list' in the query/lookup, but this feature appears to be unique to the new access 2007 file format as far as I can determine.

换句话说,MS Access 2003是否与SQL语句相当:

Worded another way, does MS Access 2003 have the equivalent to the SQL statement:

CREATE TABLE mytable (foo VARCHAR(10), bar VARCHAR(5) MULTISET); 

还是有一个聪明的解决方法来实现类似的东西?我将接受提供Access 2003中任何收集构造函数的信息的答案。

Or is there a clever workaround to achieve something similar? I would accept an answer providing information on any collection constructors in Access 2003.

推荐答案

您是指Access数据库引擎的多值数据类型?如果是这样,那么这些是引擎的ACE(2007)版本的新功能,Jet 4.0是Access2003版本的引擎不可用。

Are you referring to the Access Database Engine's multivalued data types? If so then yes, these are new to the ACE (2007) version of the engine and are not available in Jet 4.0 being Access2003's version of the engine.

FWIW我试过您使用ANSI-92查询模式(OLE DB,引擎类型= 5)和MULTISET关键字的Access2007中的SQL无法识别。

FWIW I tried your SQL in Access2007 using ANSI-92 Query Mode (OLE DB, engine type = 5) and the MULTISET keyword wasn't recognized.

请注意,您可能不需要也不需要多值类型。一个特别的批评是Access数据库SQL DML表达式服务没有被改变以考虑多值类型。另外,请参阅这篇文章被认为有害的多值数据类型

Note you may not need nor want multivalued types. One particular criticism is that Access Database SQL DML expressions service hasn't been altered to take account of multivalued types. Also, see this article Multivalued datatypes considered harmful:


Suraj [Poozhiyil,MS Access
计划经理]和我同意
全心全意的开发者不
需要使用多值字段。
了解数据库
的人已经有一个很好的方式
实现多对多
关系,并且将从多值字段获得
的好处。

both Suraj [Poozhiyil, the MS Access Program Manager] and I agree wholeheartedly that developers do not need to use multi-valued fields. People who understand databases already have a good way of implementing many to many relationships and will gain no benefit from multi-valued fields.

所以,我对
开发人员的清晰和一定的建议是不要使用多值的
字段。他们没有什么可以给我们
,除了潜在的痛苦。

So, my clear and certain advice to developers is not to use multi-valued fields. They have nothing to offer us except potential pain.

更新:


MULTISET 是一个新的数据类型官方
从SQL:2003开始,所以我是
猜测在Access 2007中添加
的一部分原因是完全符合
SQL标准

MULTISET is a new datatype officially beginning with SQL:2003 so I'm guessing part of the reason for adding it in Access 2007 is to be fully compliant with the SQL standard

几乎有趣。访问团队对添加符合任何SQL标准的SQL语法没有兴趣。

That's almost amusing. The Access Team have shown no interest in adding SQL syntax that is compliant with any SQL Standard.

[当SQL Server团队为其4.0版本修改Jet时,他们希望达到SQL-92合规性​​,但由组件依赖的Windows团队阻止这样做在某些功能仍然不符合...但这是另一个故事。访问团队拥有自己的私人私人代码库,所以他们没有这样的借口,除非SharePoint团队现在有不适当的影响?我离题...]

[When the SQL Server team were modifying Jet for its 4.0 release they wanted to attain SQL-92 compliance but were prevented from doing so by the Windows team whose components were reliant on some features remaining non-compliant... but that's another story. The Access Team have their own private folk of the code base so they've no such excuse... unless the SharePoint Team now has undue influence? I digress...]

从有关SQL2003标准的文档中考虑这个引用:

Consider this quote from the document about the SQL2003 Standard:


MULTISET 类型的值可以是
,通过枚举
个别元素或通过提供
创建元素查询
表达式;例如,

Values of a MULTISET type can be created either by enumerating the individual elements or by supplying the elements through a query expression; e.g.,

MULTISET [1,2,3,4]

MULTISET(
code>
FROM课程

...相反,multiset值可以是
,用作 FROM
子句中的表引用,使用 UNNEST 运算符

...Conversely, a multiset value can be used as a table reference in the FROM clause using the UNNEST operator.

访问团队尚未添加任何新表达式,也没有添加任何操作符到ACE SQL DML语法。所以,不,这与SQL标准和与SharePoint有关的一切都无关。

The Access Team has not added any new expressions nor any operators to the ACE SQL DML syntax. So, no, this has nothing to do with SQL Standards and everything to do with SharePoint.


David W. Fenton:不,[支持
多值类型]被添加在
ACCDB格式(不是ACE,如
@onedaywhen说...)

David W. Fenton: No, [support for multivalued types] was added in the ACCDB format (not the ACE, as @onedaywhen says...)

请考虑访问权限团队自己的博客


我们添加到新
Access引擎的主要功能是支持复杂
数据。

The primary feature we added to the new Access engine is support for "complex data".

这绝对是一个引擎功能!

It is definitely an engine feature!

这篇关于Microsoft Access 2003是否包含集或多集?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆