Article ID: 229681 - View products that this article applies to.
This article was previously published under Q229681
Advanced: Requires expert coding, interoperability, and multiuser skills.
This article applies only to a Microsoft Access project (.adp).
For a Microsoft Access 2002 version of this article, see 294923
When you try to run upsized make-table or append queries in a Microsoft Access project, you may receive the following error message:
Cannot run SELECT INTO in this database. The database owner must run sp_dboption to enable this option.
You may also encounter the first error message when running an upsized update query.
Cannot insert explicit value for identity column in table 'table name' when IDENTITY_INSERT is set to OFF.
When you create a new Microsoft Data Engine (MSDE) or SQL Server database, the select into/bulkcopy and IDENTITY_INSERT options are set to OFF.
Upsized Make-Table QueriesWhen you upsize a database that contains make-table queries, the queries migrate as stored procedures. These stored procedures use the SELECT INTO statement to create a new table and then add records to it. You must set the select into/bulkcopy option of the database to ON in any database that contains a stored procedure that uses the SELECT INTO statement.
Upsized Update and Append QueriesIf you upsize a Microsoft Access table that contains a field of the AutoNumber data type, the field will be created on MSDE or SQL Server as an IDENTITY column. Unlike the AutoNumber data type, you cannot directly edit IDENTITY columns, nor explicitly insert data into an IDENTITY column while the IDENTITY_INSERT option for that table is set to OFF. To insert or update data in an IDENTITY column, you must set the IDENTITY_INSERT option to ON.
To set the select into/bulk copy option to ON for your database, create a stored procedure that uses the sp_dboption system stored procedure to toggle the setting. The following SQL sample modifies a database named MyDatabase so you can use SELECT INTO statements:
You can use the SET IDENTITY_INSERT statement to set the IDENTITY_INSERT option. SET IDENTITY_INSERT always references a table, and should be placed before the UPDATE or INSERT statement that modifies or inserts data into an IDENTITY column. The following example sets IDENTITY_INSERT for the NewEmployees table.
CREATE PROCEDURE SetMyOptions AS EXEC sp_dboption 'MyDatabase','bulkcopy','ON'
SET IDENTITY_INSERT NewEmployees ON
When you try to upsize to SQL Server 2000 from Access 2000 using the Upsizing Wizard you receive an "Overflow" error message. For additional information about this issue, click the article number below to view the article in the Microsoft Knowledge Base:
(http://support.microsoft.com/kb/272384/EN-US/ )ACC2000: "Overflow" Error Message When You Try to Upsize to SQL Server 2000
Steps to Reproduce Behavior
For more information about sp_dboption and IDENTITY INSERT, refer to SQL Server Books Online. To download the SQL Server Books Online, visit the following Microsoft Web site:
Article ID: 229681 - Last Review: August 9, 2004 - Revision: 2.1
Contact us for more help