Solved

Getting Data Into SQL From Access

Posted on 1998-09-16
5
203 Views
Last Modified: 2010-03-19
I need to move data from an Access database to a SQL Server database, and I have only a few days to get it done.

Knowing Access and being a complete novice at SQL Server (we're on the new Beta version) I decided to do a 'quick and dirty' port from Access by linking to SQL Server and just filling the tables up on the Access side.

But I have run into problems with tables containing Identity columns. They won't accept my data and when I try to use the SET IDENTITY_INSERT {table} ON I get a permissions errors. And yet my connection is for the sa.

What am I missing? Is there a better (faster) way to get my data from Access to SQL Server in an automated process?
0
Comment
Question by:bjames
5 Comments
 

Expert Comment

by:NateT
ID: 1090128
export all the tables data out to tab delim files and use bcp to import the data.  I think the sql 7.0 has a gui interface to do this, but if you have to go the cmd line route and need some help with syntax let me know.
0
 

Expert Comment

by:bert_iligan
ID: 1090129
There are tools available on the net for download, try to browse for MSACCESS97 UPSIZING TOOLS. What you can do with this is you can upsize your existing access tables to the sql server.
0
 

Author Comment

by:bjames
ID: 1090130
I guess I was hoping more to know how it could be done via MS-Access as our company intends to use both SQL Server and Access as back ends to our software. SQL will be for large customers and Access will be for smaller customers who cannot justify the cost of migrating up at this time.

My mandate (for the present) is to create a single product which moves data to either SQL or Access. Right now I have an Access product which moves data to Access, but it isn't so clean going to SQL.

My current solution has been to create a matching set of tables in SQL which do not have Identity columns and move the data there first. Then, within SQL I am able to issue the command SET IDENTITY_INSERT {table} ON and move the data again. But I was wondering if there is a way I can move the data in a single step via Access.

0
 
LVL 1

Accepted Solution

by:
aumdavis earned 100 total points
ID: 1090131
When I need to move tables with data onto SQL Server from Access, I use the following method:

1.  Create a make-table query on the table you want to move.
2.  View the properties of the query in design view.  Change the 'Destination Table' and 'Destination Database' to the table name  you want on SQL Server in the database you want.
3.  Change the 'Dest Connect String' to ODBC;

When you run the query, Access will ask for your username and password (you can also store this info in the connection string parameter).  Access will then create the table and move the data for you.

It's not real fast, but it does work, and it would be easy to automate.  Be careful with datatypes, they don't always convert exactly as you would like them to.

Hope this helps!
0
 

Author Comment

by:bjames
ID: 1090132
It isn't exactly what I was hoping for, but I'm now thinking that what I want to do probably cannot be done. The tables I want to send data to already exist, so creating new tables as I move the data is about the same as what I'm doing now (keeping a copy of tables without the identity constraint to receive the data. In either case I must port the data from the 'temporary' tables into the actual 'live' tables. (Importing data is not necessarily a one-time event.)

But I'm assuming now that pushing data from MS-Access directly into an existing SQL table with an identity constraint is not doable. There must be an intermediate table or file to receive the data first.

Thanks
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Load balancing is the method of dividing the total amount of work performed by one computer between two or more computers. Its aim is to get more work done in the same amount of time, ensuring that all the users get served faster.
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Via a live example, show how to shrink a transaction log file down to a reasonable size.
Viewers will learn how to use the SELECT statement in SQL to return specific rows and columns, with various degrees of sorting and limits in place.

820 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question