Não é possível utilizar convertidas acrescentar consultas num projecto do Access no Access 2002

Traduções de Artigos Traduções de Artigos
Artigo: 294923 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Avançado: Requer conhecimentos avançados sobre codificação, interoperabilidade e multi-utilizador.

Este artigo aplica-se apenas a um projecto do Microsoft Access (.adp).

Para obter uma versão de Microsoft Access 2000 deste artigo, consulte 229681.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Quando tenta executar uma convertidas acrescentar consulta num projecto do Microsoft Access, poderá receber a seguinte mensagem de erro:
Não é possível inserir valor explícito para a coluna de identificação na tabela ' nome da tabela ' quando IDENTITY_INSERT está definida como desactivada.

Causa

Quando cria uma nova base de dados do SQL Server (incluindo o SQL Server 2000 Desktop Engine), as opções de IDENTITY_INSERT são definidas para OFF .

Se converter uma tabela do Microsoft Access que contém um campo de dados Numeração automática, escrever, o campo é criado no SQL Server como uma coluna IDENTITY. Ao contrário do tipo de dados Numeração automática, não é possível editar directamente IDENTITY colunas nem explicitamente inserir dados de uma coluna IDENTITY enquanto a opção IDENTITY_INSERT para essa tabela está definida como desactivada . Para inserir ou actualizar dados numa coluna IDENTITY, tem de definir a opção IDENTITY_INSERT como ON .

Resolução

Pode utilizar a instrução SET IDENTITY_INSERT para definir a opção IDENTITY_INSERT . SET IDENTITY_INSERT sempre faz referência a uma tabela e, deverá colocá-lo antes da instrução UPDATE ou INSERT que modifica ou insere dados uma coluna IDENTITY. O exemplo seguinte define IDENTITY_INSERT para a tabela NewEmployees.
   SET IDENTITY_INSERT NewEmployees ON
				

Mais Informação

Passos para reproduzir o comportamento

  1. Abra a base de dados exemplo Adamastor.mdb.
  2. Na janela Base de dados, clique na tabela Empregados e, em seguida, clique em Copiar no menu Editar .
  3. No menu Editar , clique em Colar . Na caixa de diálogo Colar tabela como , escreva NewEmployees na caixa Nome da tabela . Clique em OK .
  4. Criar uma nova consulta na vista de estrutura e, em seguida, feche a caixa de diálogo Mostrar tabela sem adicionar quaisquer tabelas ou consultas.
  5. No menu Ver , clique em Ver SQL.
  6. Escreva a seguinte instrução INSERT INTO na janela de SQL. Esta declaração irá criar uma consulta Acrescentar:
       INSERT INTO 
              NewEmployees (EmployeeID, LastName, FirstName, Title,
              TitleOfCourtesy, BirthDate, HireDate, Address, City, Region,
              PostalCode, Country, HomePhone, Extension, Photo, Notes,
              ReportsTo)
       SELECT 
              Employees.EmployeeID, Employees.LastName, Employees.FirstName,
              Employees.Title, Employees.TitleOfCourtesy, Employees.BirthDate,
              Employees.HireDate, Employees.Address, Employees.City,
              Employees.Region, Employees.PostalCode, Employees.Country,
              Employees.HomePhone, Employees.Extension, Employees.Photo,
              Employees.Notes, Employees.ReportsTo
       FROM 
              Employees;
    					
  7. Guardar a consulta como qryAppend e, em seguida, feche a consulta.
  8. No menu Ferramentas , aponte para Utilitários de base de dados e, em seguida, clique em Assistente de conversão .
  9. Conclua os passos do Assistente de conversão e aceitar as selecções predefinidas, excepto se indicado abaixo:
    Criar nova base de dados: Sim
    Que tabelas deseja exportar para o SQL Server: Exportar todas as tabelas
    Adicionar campos de marca de hora às tabelas: não, nunca
    Criar uma nova aplicação cliente/servidor de acesso: Sim
  10. Depois de concluído o Assistente de conversão, feche o relatório de conversão.
  11. Tente executar o procedimento armazenado qryAppend e anote a mensagem de erro.
  12. Para definir IDENTITY INSERT como ON , adicione a seguinte linha de SQL o procedimento armazenado qryAppend imediatamente após a palavra-chave , :
       SET IDENTITY_INSERT NewEmployees ON
    						
    quando tiver terminado, o procedimento deverá assemelhar-se o seguinte texto:
       ALTER PROCEDURE qryAppend
       AS
       SET IDENTITY_INSERT NewEmployees ON
       INSERT INTO 
              NewEmployees (EmployeeID, LastName, FirstName, Title,
              TitleOfCourtesy, BirthDate, HireDate, Address, City, Region,
              PostalCode, Country, HomePhone, Extension, Photo, Notes,
              ReportsTo)
       SELECT 
              Employees.EmployeeID, Employees.LastName, Employees.FirstName,
              Employees.Title, Employees.TitleOfCourtesy, Employees.BirthDate,
              Employees.HireDate, Employees.Address, Employees.City, 
              Employees.Region, Employees.PostalCode, Employees.Country, 
              Employees.HomePhone, Employees.Extension, Employees.Photo, 
              Employees.Notes, Employees.ReportsTo
       FROM 
              Employees
    					
  13. Guarde o procedimento armazenado modificado e, em seguida, executá-la. Note que ser bem sucedido.

Referências

Para obter mais informações sobre IDENTITY INSERT , consulte SQL Server Books Online. Para transferir o SQL Server Books Online, visite o seguinte Web site da Microsoft:
http://technet.microsoft.com/en-us/sqlserver/bb331756.aspx

Propriedades

Artigo: 294923 - Última revisão: 23 de janeiro de 2014 - Revisão: 3.3
A informação contida neste artigo aplica-se a:
  • Microsoft Access 2002 Standard Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kbclientserver kberrmsg kbprb KB294923 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 294923

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com