No se puede utilizar convertida anexar las consultas en un proyecto de Access en Access 2002

Seleccione idioma Seleccione idioma
Id. de artículo: 294923 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Avanzado: Requiere codificación experto, interoperabilidad, conocimientos y multiusuario.

Este artículo se aplica únicamente a proyectos de Microsoft Access (.adp).

Para obtener una versión de Microsoft Access 2000 de este artículo, consulte 229681.
Expandir todo | Contraer todo

En esta página

Síntomas

Cuando intenta ejecutar un convertida Anexar consulta en un proyecto de Microsoft Access, puede recibir el siguiente mensaje de error:
No se puede insertar un valor explícito de columna de identidad en la tabla ' nombre de la tabla ' la cuando IDENTITY_INSERT es OFF.

Causa

Cuando se crea una nueva base de datos SQL Server (incluidos SQL Server 2000 Desktop Engine), las opciones de IDENTITY_INSERT se establecen en OFF .

Si escribe una tabla de Microsoft Access que contiene un campo de datos de Autonumérico de convertir a SQL Server, el campo se crea en SQL Server como una columna IDENTITY. A diferencia de tipo de datos Autonumérico, no se pueden editar directamente las columnas IDENTITY ni explícitamente insertar datos en una columna IDENTITY, mientras que la opción IDENTITY_INSERT para esa tabla está establecida en OFF . Para insertar o actualizar datos en una columna IDENTITY, debe establecer la opción IDENTITY_INSERT a ON .

Solución

Puede utilizar la instrucción SET IDENTITY_INSERT para establecer la opción IDENTITY_INSERT . SET IDENTITY_INSERT siempre hace referencia a una tabla y se debe colocar antes de la instrucción UPDATE o INSERT que modifica o inserta datos en una columna IDENTITY. En el ejemplo siguiente se establece IDENTITY_INSERT para la tabla NewEmployees.
   SET IDENTITY_INSERT NewEmployees ON
				

Más información

Pasos para reproducir el comportamiento

  1. Abra la base de datos de ejemplo Neptuno.mdb.
  2. En la ventana base de datos, haga clic en la tabla empleados y, a continuación, haga clic en Copiar en el menú Edición .
  3. En el menú Edición , haga clic en Pegar . En el cuadro de diálogo Pegar tabla como , escriba NewEmployees en el cuadro Nombre de tabla . Haga clic en Aceptar .
  4. Crear una nueva consulta en la vista Diseño y, a continuación, cierre el cuadro de diálogo Mostrar tabla sin agregar tablas ni consultas.
  5. En el menú Ver , haga clic en vista SQL.
  6. Escriba la siguiente instrucción INSERT INTO en la ventana SQL. Esta instrucción creará una consulta de datos anexados:
       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. Guarde la consulta como qryAppend y, a continuación, cierre la consulta.
  8. En el menú Herramientas , seleccione Utilidades de base de datos y, a continuación, haga clic en Asistente para convertir a SQL Server .
  9. Complete los pasos en el Asistente para convertir a SQL Server y acepte las selecciones predeterminadas, excepto como se indica a continuación:
    Crear nueva base de datos:
    ¿Qué tablas desea exportar a SQL Server: Exportar todas las tablas
    Agregar campos de marca de hora a las tablas: no, nunca
    Crear una nueva aplicación de cliente/servidor de Access:
  10. Cuando termine el Asistente para convertir a SQL Server, cierre el informe de conversión.
  11. Intente ejecutar el procedimiento qryAppend almacenado y observe el mensaje de error.
  12. Para establecer IDENTITY INSERT en ON , agregue la siguiente línea de SQL al procedimiento qryAppend almacenado del sistema con el directamente después de la palabra clave AS :
       SET IDENTITY_INSERT NewEmployees ON
    						
    cuando haya terminado, el procedimiento almacenado debe ser similar el siguiente 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 el procedimiento almacenado modificado y, a continuación, ejecútelo. Tenga en cuenta que se realiza correctamente.

Referencias

Para obtener más información acerca de IDENTITY INSERT , consulte los libros en pantalla de SQL Server. Para descargar los libros en pantalla de SQL Server, visite el siguiente sitio Web de Microsoft:
http://technet.microsoft.com/en-us/sqlserver/bb331756.aspx

Propiedades

Id. de artículo: 294923 - Última revisión: domingo, 9 de febrero de 2014 - Versión: 3.3
La información de este artículo se refiere a:
  • Microsoft Access 2002 Standard Edition
Palabras clave: 
kbnosurvey kbarchive kbmt kbclientserver kberrmsg kbprb KB294923 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 294923

Enviar comentarios

 

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