Access データベース エンジンの多値データ型について言及していますか? そうであれば、はい、これらは ACE (2007) バージョンのエンジンにとって新しいものであり、エンジンの Access2003 バージョンである Jet 4.0 では使用できません。
FWIW Access2007 で ANSI-92 クエリ モード (OLE DB、エンジン タイプ = 5) を使用して SQL を試しましたが、MULTISET キーワードが認識されませんでした。
多値型は必要ないかもしれないし、したくないかもしれないことに注意してください。特に批判の 1 つは、Access データベース SQL DML 式サービスが多値型を考慮に入れるように変更されていないことです。また、次の記事「多値データ型が有害と見なされる」も参照してください。
Suraj [Poozhiyil、MS Access プログラム マネージャー] と私は、開発者が多値フィールドを使用する必要がないことに心から同意します。データベースを理解している人は、多対多のリレーションシップを実装する優れた方法を既に持っているため、多値フィールドからメリットを得ることはできません。
したがって、開発者への私の明確で確実なアドバイスは、多値フィールドを使用しないことです。彼らは潜在的な痛みを除いて、私たちに提供するものは何もありません.
アップデート:
MULTISETは SQL:2003 で公式に開始された新しいデータ型であるため、Access 2007 に追加する理由の一部は、SQL 標準に完全に準拠するためであると推測しています。
それはほとんど面白いです。アクセス チームは、SQL 標準に準拠する SQL 構文を追加することに関心を示していません。
[SQL Server チームが 4.0 リリースに向けて Jet を変更していたとき、彼らは SQL-92 準拠を達成したいと考えていましたが、コンポーネントが準拠していない一部の機能に依存していた Windows チームによってそれを妨げられました... しかし、それは別の話です。アクセス チームには独自のコード ベースのメンバーがいるので、そのような言い訳はできません... SharePoint チームが過度の影響力を持っていない限り? 余談…]
SQL2003 標準に関するドキュメントからの次の引用を検討してください。
型の値はMULTISET
、個々の要素を列挙するか、クエリ式を介して要素を提供することによって作成できます。例えば、
MULTISET[1, 2, 3, 4]
また
MULTISET(
SELECT grades
FROM courses
)
...逆に、multiset 値は、演算子FROM
を使用して句内のテーブル参照として使用できます。UNNEST
アクセス チームは、新しい式や演算子を ACE SQL DML 構文に追加していません。いいえ、これは SQL 標準とは関係なく、すべて SharePoint と関係があります。
David W. Fenton: いいえ、[多値型のサポート] は ACCDB 形式で追加されました (@onedaywhen が言うように、ACE ではありません...)
アクセス チーム自身のブログからのこの引用を検討してください。
新しい Access エンジンに追加された主な機能は、「複雑なデータ」のサポートです。
それは間違いなくエンジンの特徴です!