2009-11-11 3 views
2

MS Access 2003에서 테이블 열을 집합으로 정의 할 수 있는지 여부를 확인하거나 거부하려고합니다. 이 은 Office 2007에 구현 된입니다. 쿼리/조회에 '다중 선택 목록'을 포함하도록 열을 정의 할 수 있지만이 기능은 가능한 한 새로운 액세스 2007 파일 형식에 고유 한 것으로 보입니다. 결정.Microsoft Access 2003에 세트 또는 멀티 세트가 있습니까?

다른 방법을 말로, MS 액세스 2003은 SQL 문에 동등가 않습니다

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

또는 유사한 무언가를 달성하기 위해 영리한 해결 방법은? Access 2003의 컬렉션 생성자에 대한 정보를 제공하는 대답을 수락합니다.

답변

4

Access 데이터베이스 엔진의 multivalued data types을 언급하고 있습니까? 그렇다면이 엔진은 ACE (2007) 버전의 새로운 엔진이며 Access 2003의 엔진 인 Jet 4.0에서는 사용할 수 없습니다.

FWIW ANSI-92 쿼리 모드 (OLE DB, 엔진 유형 = 5)를 사용하여 Access2007에서 SQL을 시도했지만 MULTISET 키워드가 인식되지 않았습니다.

다중 값 유형이 필요하거나 필요하지 않을 수 있습니다. 한 가지 특별한 비판은 Access Database SQL DML 표현식 서비스가 다중 값 유형을 고려하여 변경되지 않았다는 것입니다.

모두 SURAJ [Poozhiyil의 MS 액세스 프로그램 관리자] 내가 다중 값 필드를 사용할 필요가 없습니다 개발자가 않습니다 진심 것을 동의 : 또한,이 문서 Multivalued datatypes considered harmful를 참조하십시오. 데이터베이스를 이해하는 사람들은 이미 많은 사람이 관계를 구현하는 의 좋은 방법을 가지고 있으며 여러 값 필드에서 아무런 이점도 얻지 못할 것입니다.

따라서 개발자는 개발자에게 명확한 조언을 제공하기 위해 복수 값 필드 을 사용하지 않아야합니다. 잠재적 고통을 제외하고 그들은 우리에게 을 제공 할 것이 없습니다.

UPDATE :

MULTISET 새로운 데이터 형식 공식적으로 SQL로 시작하는 것입니다 : 2003 그래서 액세스 2007 년 을 추가하는 이유의 일부를 추측 이야은 완벽하게 준수하는 것입니다 SQL 표준

거의 재미 있습니다. 액세스 팀은 SQL 표준을 준수하는 SQL 구문을 추가하는 데 관심이 없습니다.

[SQL Server 팀이 Jet 4.0을 릴리스 할 때 SQL-92 준수를 원했지만 구성 요소가 비준수 인 일부 구성 요소를 사용하는 Windows 팀에서 금지되었습니다. 그것은 또 다른 이야기입니다. 액세스 팀에는 코드 기반의 자체 민간 사람들이 있으므로 SharePoint 팀이 현재 과도한 영향력을 행사하지 않는 한 그러한 변명의 여지가 없습니다. 나는 빗 나간다.]

는 SQL2003 표준 관련 문서에서이 인용 고려하십시오 MULTISET

값이 될 수 생성 어느 개별 요소를 열거 나 쿼리 식으로 요소를 공급하는 단계; 예

MULTISET[1, 2, 3, 4]

또는

MULTISET( SELECT grades FROM courses )

... 반대로 MULTISET 값 은을 사용 FROM 절에 나타난 기준으로 사용될 수있다 UNNEST 연산자.

액세스 팀이 ACE SQL DML 구문에 새로운 표현식이나 연산자를 추가하지 않았습니다. 따라서, 이것은 SQL 표준 및 SharePoint와 관련된 모든 것과 관련이 없습니다.

데이비드 W. 펜톤 : 아니, 에만 적용 형식으로 추가 된 [ 다중 유형에 대한 지원 ( @onedaywhen 말한대로가 아닌 ACE가 ...)

이 견적을 고려 the Access Team's own blog에서 :

우리는 새로운 액세스 엔진에 추가 된 주요 기능은 "복잡한 데이터"에 대한 지원이다.

확실히 엔진 기능입니다!

+0

여러 값 필드 ... 나는 그것이 이상한 아이디어라고 말하는 것에 동의합니다! 심지어 Access 2007에서 구현 된 이유를 이해할 수 없습니다. 관계형 데이터베이스를 다루는 경우 분명히 오해의 소지가 있고 혼란스러운 개념입니다. –

+3

사실 개발자 유형은 다중 값을 사용하여 사용자가 만든 솔루션을 인수하는 것과 같습니다. 청구 가능 시간이라고합니다. –

+0

그렇습니다. 다중 값 데이터 형식은 Access 2007에서 내가 사용했던 것과 정확히 같습니다. FYI, MULTISET은 공식적으로 SQL : 2003으로 시작하는 새로운 데이터 형식입니다. http://www.sigmod.org/record/issues/0403/E.JimAndrew -standard.pdf - Access 2007에 추가해야하는 이유 중 일부는 SQL 표준을 완벽하게 준수하는 것입니다. 오라클에는 오랫동안 존재 해 왔습니다. (예를 들어 보았습니다) 죄송합니다. 이전에 MULTISETS를 사용하여 테이블을 비트 마스크로 설정했습니다. 매우 편리합니다. – DaveParillo