Microsoft Access 2003は、セットやマルチセットが含まれていますか?
-
19-09-2019 - |
質問
私はあなたがセットとしてMS Access 2003でテーブルの列を定義することができるかどうかを確認したり、拒否しようとしています。あなたは、クエリ/ルックアップで「複数選択リスト」を持つように列を定義することができますが、この機能は新しいアクセス2007ファイル形式に固有のように見える - Office 2007に実装され、これは のようです限り、私は確認できてます。
別の方法を言葉で表現、MSアクセス2003は、SQL文と同じを持っています。
CREATE TABLE mytable (foo VARCHAR(10), bar VARCHAR(5) MULTISET);
または類似した何かを達成するための巧妙な回避策はありますか?私は、Access 2003で任意のコレクションコンストラクタに関する情報を提供する答えを受け入れるだろう。
解決
あなたは、Accessデータベースエンジンの多値データ型を参照しているに?その場合は[はい、これらはエンジンのACE(2007)のバージョンに新しく追加され、エンジンのAccess2003のバージョンであることのJet 4.0では使用できません。
FWIW私は、ANSI-92クエリモード(OLE DB、エンジンタイプ= 5)を使用して、Access2007であなたのSQLを試してみましたが、MULTISETキーワードが認識されませんでした。
あなたが必要とするも、多値の種類を望んでいないことに注意してください。一つの特定の批判は、AccessデータベースのSQL DML式サービスは、多値の種類を考慮して変更されていないことです。また、この記事有害に考えられ複数値のデータ型を参照してください。
スラジュ[Poozhiyil、MSアクセスの両方 プログラムマネージャ]と私は同意します 心をこめて、開発者がいないこと 複数値フィールドを使用する必要があります。 データベースを理解する人々 すでにの良い方法を持っています 多くの多くを実装します 関係と何の利益を得ていないだろう 複数値フィールドから。
だから、私にはっきりと特定のアドバイス 開発者は、多値使用することではありません フィールド。彼らは私たちを提供することは何もありません 潜在的な痛みを除いています。
UPDATE:
MULTISET には、正式に新しいデータ型であります SQLで始まる:2003私はよ 追加するための理由の一部を推測 それは、Access 2007で完全になることです SQL規格に準拠します。
これはほとんど面白いです。アクセスチームは、任意のSQL標準に準拠したSQL構文を追加することには関心を示しませんでした。
[SQL Serverチームは、彼らがSQL-92準拠を達成したかったが、その成分が非準拠の残りの一部の機能に依存したWindowsチームによってそうすることを防止し、その4.0リリースのためにジェットを修正して...しかし、それはだときまた別の話。彼らはそのような言い訳をしたんので、アクセスチームは、コードベースの独自のプライベートフォークを持っている... SharePointのチームは現在、不当な影響力を持っていない限り?私は脱線...]
SQL2003標準に関する文書から、この引用を考えてみます:
MULTISET
型の値をすることができ 列挙のいずれかによって作成されました 供給することによって個々の要素又は クエリによる要素 発現;例えば。、
MULTISET[1, 2, 3, 4]
または
MULTISET(
SELECT grades
FROM courses
)
...逆に、多重集合値をすることができ
FROM
のテーブル参照として使用UNNEST
演算子を使用して句ます。
アクセスチームはACE SQL DML構文に任意の新しい表現や任意の演算子を追加していません。だから、いや、これは、SharePointを行うにはSQL標準とは何の関係も、すべてを持っていません。
デビッドW.フェントン:いいえ、[のサポート で追加されました]多値種類 ACCDB形式(ACEない、など @onedaywhenは、
)...と言います
<アクセスチームの自身のブログから、この引用を検討/ A>:
私たちは新しいに追加主な特徴 アクセスエンジンは、複雑な「のサポートです データ」ます。
これは間違いなくエンジンの機能です!