Pergunta

Eu estou tentando confirmar ou negar se você pode definir uma coluna da tabela no MS Access 2003 como um conjunto. Parece que este é implementada no Office 2007 - você pode definir uma coluna para ter uma 'lista de seleção múltipla' na consulta / pesquisa, mas esse recurso parece ser exclusivo para o novo formato de arquivo Access 2007 tanto quanto posso determinar.

Redação de outra forma, não MS Access 2003 tem o equivalente à instrução SQL:

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

Ou há uma solução inteligente para conseguir algo semelhante? Eu aceitaria uma resposta fornecendo informações sobre quaisquer construtores de coleta no Access 2003.

Foi útil?

Solução

Você está se referindo ao banco de dados Access valores múltiplos tipos de dados do motor ? Se sim, então sim, estes são novos para a versão do motor de ACE (2007) e não estão disponíveis no Jet 4.0 sendo a versão de Access2003 do motor.

FWIW Eu tentei o seu SQL em Access2007 usando ANSI-92 Modo de consulta (OLE DB, tipo de motor = 5) e a palavra-chave MULTISET não foi reconhecido.

Observe que você pode não precisar nem querer tipos de valor múltiplo. Uma crítica particular é que o serviço de banco de dados Access SQL DML expressões não foi alterado para ter em conta os tipos de valor múltiplo. Além disso, veja este artigo tipos de dados de valor múltiplo considerados prejudicial:

tanto Suraj [Poozhiyil, o MS Access Gerente do Programa] e eu concordo sinceramente que os desenvolvedores não fazer precisa usar campos com valores múltiplos. Pessoas que entendem os bancos de dados já tem uma boa maneira de implementação de muitos para muitos relacionamentos e vai ganhar nenhum benefício de campos com vários valores.

Então, meu conselho claro e certo para desenvolvedores é não usar vários valores Campos. Eles não têm nada a nos oferecer exceto dor potencial.

UPDATE:

MULTISET é um novo tipo de dados oficialmente começando com o SQL: 2003 assim que eu sou supondo que parte da razão para adicionar -lo no Access 2007 é para ser totalmente compatível com o padrão SQL

Isso é quase divertido. A Equipe de Acesso não mostraram nenhum interesse em adicionar sintaxe SQL que é compatível com qualquer padrão SQL.

[Quando a equipe SQL Server foram modificando Jet para o seu lançamento 4.0 queriam atingir SQL-92 conformidade, mas foram impedidos do fazer pela equipe do Windows cujos componentes eram dependentes de alguns recursos remanescentes não conformes ... mas isso é outra história. O acesso à equipe têm o seu próprio povo privado da base de código para que eles têm essa desculpa ... a menos que a Equipe SharePoint agora tem influência indevida? Eu discordo ...]

Considere esta citação do documento sobre o SQL2003 Standard:

Os valores de um tipo MULTISET pode ser criado tanto por enumerar o elementos individuais ou por fornecimento os elementos através de uma consulta expressão; por exemplo.,

MULTISET[1, 2, 3, 4]

ou

MULTISET( SELECT grades FROM courses )

... Por outro lado, um valor multiset pode ser utilizado como uma referência de tabela no FROM cláusula usando o operador UNNEST.

A Equipe Access não adicionou nenhum novas expressões nem quaisquer operadores para a sintaxe ACE SQL DML. Então, não, isso não tem nada a ver com SQL Padrões e tudo a ver com o SharePoint.

David W. Fenton: Não, [suporte para tipos de valores múltiplos] foi introduzido na formato ACCDB (não o ACE, como @onedaywhen diz ...)

Considere esta citação de próprio blog da Equipe de Acesso :

A principal característica que adicionado ao novo motor de acesso é o suporte para “complexo dados”.

É definitivamente uma característica do motor!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top