Compartilhar via


Instrução CREATE INDEX (Microsoft Access SQL)

Aplica-se ao: Access 2013, Office 2013

Cria um novo índice em uma tabela existente.

Observação

Para bancos de dados de mecanismo de banco de dados não Microsoft Access, o mecanismo de banco de dados Microsoft Access não fornece suporte ao uso de CREATE INDEX (exceto para criar um pseudo índice em uma tabela ODBC vinculada) nem de nenhuma instrução de linguagem de definição de dados (DDL). Em vez disso, utilize os métodos DAO Criar. Para mais informações, consulte a seção Comentários.

Sintaxe

TABELA CREATE [ UNIQUE ] INDEX ON(campo [ASC|DESC][, campo [ASC|DESC], ...]) [WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]

A instrução CREATE INDEX tem as seguintes partes:

Sair

Descrição

índice

O nome do índice a ser criado.

tabela

O nome da tabela existente que conterá o índice.

campo

O nome do(s) campo(s) a ser indexado. Para criar um índice de campo único, liste o nome do campo entre parênteses, após o nome da tabela. Para criar um índice de vários campos, liste o nome de cada campo a ser incluído no índice. Para criar índices em ordem decrescente, use a palavra reservada DESC; caso contrário, os índices serão considerados como crescente.

Comentários

Para proibir valores duplicados nos campos indexados de registros diferentes, use a palavra reservada UNIQUE.

Na cláusula opcional WITH, você pode aplicar regras de validação de dados. Você pode:

  • Proibir entradas nulas nos campos indexados de novos registros, usando a opção DISALLOW NULL.

  • Impedir que os registros com valores Null no campo ou nos campos indexados sejam incluídos no índice, utilizando a opção IGNORE NULL.

  • Designar o campo ou os campos indexados como a chave primária, utilizando a palavra reservada PRIMARY. Isso implica que a chave seja exclusiva, para que você possa omitir a palavra reservada UNIQUE.

Você pode usar CREATE INDEX para criar um pseudo índice em uma tabela vinculada em uma fonte de dados ODBC, como o Microsoft SQL Server, que ainda não tem um índice. Não é necessário ter permissão ou acesso ao servidor remoto para criar um pseudoíndice, e o banco de dados remoto reconhece a presença do pseudoíndice e não é afetado por ele. Use a mesma sintaxe para tabelas vinculadas e nativas. Pode ser especialmente útil criar um pseudoíndice em uma tabela que normalmente seria somente leitura.

Também é possível usar a instrução ALTER TABLE para adicionar um índice de único arquivo ou de vários arquivos a uma tabela, e a instrução ALTER TABLE ou DROP para remover um índice criado com ALTER TABLE ou CREATE INDEX.

Observação

Não use a palavra reservada PRIMARY ao criar um novo índice em uma tabela que já tem uma chave primária; se você fizer isso, ocorrerá um erro.

Exemplo

Este exemplo cria um índice que consiste nos campos Telefone Residencial e Ramal na tabela Funcionários.

    Sub CreateIndexX1() 
     
        Dim dbs As Database 
     
        ' Modify this line to include the path to Northwind 
        ' on your computer. 
        Set dbs = OpenDatabase("Northwind.mdb") 
     
        ' Create the NewIndex index on the Employees table. 
        dbs.Execute "CREATE INDEX NewIndex ON Employees " _ 
            & "(HomePhone, Extension);" 
     
        dbs.Close 
     
    End Sub 

Este exemplo cria um índice na tabela Customers utilizando o campo CustomerID. Dois registros não podem ter os mesmos dados no campo CustomerID e nenhum valor nulo é permitido.

    Sub CreateIndexX2() 
     
        Dim dbs As Database 
     
        ' Modify this line to include the path to Northwind 
        ' on your computer. 
        Set dbs = OpenDatabase("Northwind.mdb") 
     
        ' Create a unique index, CustID, on the  
        ' CustomerID field. 
        dbs.Execute "CREATE UNIQUE INDEX CustID " _ 
            & "ON Customers (CustomerID) " _ 
            & "WITH DISALLOW NULL;" 
     
        dbs.Close 
     
    End Sub