Solved

create procedure to insert/update a table every night

Posted on 2008-06-12
3
321 Views
Last Modified: 2008-09-14
Hi,

I'm fairly new to using SQL server but I'm looking to insert new records into a table every night  or else update to current records.

As an example I've created a table with the following fields: id,FirstName,Age and City.

I've created a text file with the following:

      123a      Garry      30      Leeds
      23fr      Mike      33      London
      a29k      Tony      32      New York
      a34f      John      27      Manchester
      asdr      Claire      18      Liverpoool
      f56g      James      14      Dublin

and updated my table using the following SQL:

BULK insert customer
        FROM 'c:\cust.dat'
            WITH
          (
                FIELDTERMINATOR = '|',
                ROWTERMINATOR = '\n'
              )
GO

SELECT * FROM customer

GO

Every night a text file will be created with records as shown above, and I want to insert new records or update existing records.

How do I create an SQL proc(I assume) to do this?

I would prefer if you could give me the actual SQL which I can test rather than links to other tutorial sites.

Thanks,

0
Comment
Question by:gaz1000
3 Comments
 
LVL 19

Accepted Solution

by:
frankytee earned 80 total points
ID: 21768308
first create a stored proc that does all this and then create an sql job to execute the stored proc every night at whatever time.
2nd, bulk insert into a "staging" table, ie a temporary table, a table identical in structure to your real table, and then compare that table to your real table (customer) to do the comparison as shown below.
assuming your id field is actually unique,

--your current code edited to insert into staging table
bulk insert customerStaging
... etc

--then add this code to update and insert
--update existing
update customer
set
c.FirstName = s.FirstName
c.Age = s.Age
c.City  = s.City  
from customer c join customerStaging s
on c.id = s.id

--insert new
insert customer
select s.*
from customer c right join customerStaging s
on c.id = s.id
where c.id is null
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Suggested Solutions

JSON is being used more and more, besides XML, and you surely wanted to parse the data out into SQL instead of doing it in some Javascript. The below function in SQL Server can do the job for you, returning a quick table with the parsed data.
Slowly Changing Dimension Transformation component in data task flow is very useful for us to manage and control how data changes in SSIS.
Via a live example, show how to extract insert data into a SQL Server database table using the Import/Export option and Bulk Insert.
Via a live example, show how to backup a database, simulate a failure backup the tail of the database transaction log and perform the restore.

708 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

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now