Upsizing is the term coined by Microsoft to describe the process of upgrading Microsoft Access Database to a Microsoft SQL Server. This allows to continue using Microsoft Access as a database front-end whereas the actual back-end is served by a separate local or remote SQL Server allowing much higher productivity and data volumes. Microsoft Access from the version 2000 on has a special Upsizing Wizard which facilitates the data migration to the proprietary Microsoft SQL Server. No other RDBMS are currently supported for upsizing.
Upsizing strategies
There are two strategies how database can be migrated from Access to a SQL Server.
- Using ODBC from Microsoft to get access to a remote database via ADO.
- Using Access Data Projects (available in Microsoft Access 2000 and higher) which allow more "native" integration with Microsoft SQL Server.
The first strategy is often seen as the first step towards complete migration on a SQL server on the stage 2, and can be seen as a part of the strategy 2. For peculiarities of every strategy see the table.
Parameter | Strategy 1 | Strategy 2 |
---|---|---|
Database access | Via ODBC using ADO, somewhat slower than strategy 2. | Native integration with Microsoft SQL Server using Access Data Project (.adp), data access using ADO |
Integration | Can be integrated with (almost) any RDBMS | Native support only for Microsoft SQL Server |
The role of Access | Serves as database front-end with full features of Microsoft Access Jet Engine and VBA. (compare to thick client) | Serves as database front-end with limited functionality. Local tables are not allowed. Queries are generally transformed into database views, VBA code manipulating the data is transformed into procedures stored on server. (compare to thin client). |
Performing the upsizing
As any data migration procedure Microsoft Access database upsizing requires fundamental refactoring of the database structure and source code. Even though some aspects of this procedure seem to be automatized by the Upsizing Wizard, there are still many points requiring human intervention. Following changes have to be done on upsizing
- Complete change of data access interface from DAO to ADO.
- Substantial change of Microsoft Jet SQL to Transact-SQL.
- Substantial adaptation of object (e.g. tables, columns etc.) names.
- Reconception of the source code to optimally employ the new functionality of ADO and Microsoft SQL Server of the "upsized" solution.
Notes and references
- Thomas GroΓ, Claudia Clemens "Upsizing von Access zu SQL Server", dotnetpro 6/2004
- There are though the ways to store some data locally using the save methods of recordset object