Não é possível usar consultas em um projeto do Access em Access 2002 de acréscimo submetidas ao upsizing

Traduções deste artigo Traduções deste artigo
ID do artigo: 294923 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Avançadas: Requer especialista de codificação, interoperabilidade e habilidades de multiusuário.

Este artigo se aplica somente a um projeto Microsoft Access (.adp).

Para uma versão deste artigo do Microsoft Access 2000, consulte 229681.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Quando você tenta executar um upsizing consulta em um projeto Microsoft Access acréscimo, você pode receber a seguinte mensagem de erro:
Não é possível inserir o valor explícito para coluna de identidade na tabela ' nome da tabela ' quando IDENTITY_INSERT está definido para desativado.

Causa

Quando você cria um banco de dados novo do SQL Server (incluindo o SQL Server 2000 Desktop Engine), são definir as opções de IDENTITY_INSERT como OFF .

Se você submete ao upsizing uma tabela do Microsoft Access que contém um campo de dados AutoNumeração digitar, o campo é criado no SQL Server como uma coluna IDENTITY. Ao contrário do tipo de dados AutoNumeração, você não pode editar diretamente o IDENTITY colunas nem explicitamente inserir dados em uma coluna IDENTITY enquanto a opção de IDENTITY_INSERT para a tabela está definida como OFF . Para inserir ou atualizar dados em uma coluna IDENTITY, você deve definir a opção IDENTITY_INSERT como ON .

Resolução

Você pode usar a instrução SET IDENTITY_INSERT para definir a opção IDENTITY_INSERT . SET IDENTITY_INSERT sempre faz referência a uma tabela, e você deve colocá-lo antes da instrução UPDATE ou INSERT que modifica ou insere dados em uma coluna IDENTITY. O exemplo a seguir define IDENTITY_INSERT para a tabela NewEmployees.
   SET IDENTITY_INSERT NewEmployees ON
				

Mais Informações

Passos para reproduzir o problema

  1. Abra o banco de dados de exemplo Northwind.mdb.
  2. Na janela banco de dados, clique na tabela Funcionários e, em seguida, clique em Copiar no menu Editar .
  3. No menu Editar , clique em Colar . Na caixa de diálogo Colar tabela como , digite NewEmployees na caixa Nome da tabela . Clique em OK .
  4. Criar uma nova consulta no modo Design e feche a caixa de diálogo Mostrar tabela sem adicionar qualquer tabelas ou consultas.
  5. No menu Exibir , clique em Exibir SQL.
  6. Digite a seguinte instrução INSERT INTO na janela SQL. Esta instrução será criar uma consulta acréscimo:
       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. Salve a consulta como qryAppend e, em seguida, feche a consulta.
  8. No menu Ferramentas , aponte para Utilitários de banco de dados e, em seguida, clique em Assistente de Upsizing .
  9. Conclua as etapas o Assistente de Upsizing e aceite as seleções padrão, exceto conforme descrito abaixo:
    Criar novo banco de dados: Sim
    Quais tabelas você deseja exportar para o SQL Server: Exportar todas as tabelas
    Adicionar campos de carimbo de data/hora às tabelas: não, nunca
    Criar um novo aplicativo cliente/servidor do Access: Sim
  10. Depois que o Assistente de Upsizing estiver concluído, feche o relatório de upsizing.
  11. Tente executar o procedimento armazenado qryAppend e observe a mensagem de erro.
  12. Para definir o IDENTITY INSERT como ON , adicione a seguinte linha de SQL para o procedimento armazenado qryAppend diretamente após a palavra-chave AS :
       SET IDENTITY_INSERT NewEmployees ON
    						
    quando tiver terminado, o procedimento armazenado deve se parecer com 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. Salve o procedimento armazenado modificado e executá-lo. Observe que ele for bem-sucedido.

Referências

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

Propriedades

ID do artigo: 294923 - Última revisão: quarta-feira, 23 de outubro de 2013 - 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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