Solved

create procedure to insert/update a table every night

Posted on 2008-06-12
3
337 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
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

What Is Transaction Monitoring and who needs it?

Synthetic Transaction Monitoring that you need for the day to day, which ensures your business website keeps running optimally, and that there is no downtime to impact your customer experience.

Question has a verified solution.

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

I have a large data set and a SSIS package. How can I load this file in multi threading?
This post looks at MongoDB and MySQL, and covers high-level MongoDB strengths, weaknesses, features, and uses from the perspective of an SQL user.
Using examples as well as descriptions, and references to Books Online, show the documentation available for date manipulation functions and by using a select few of these functions, show how date based data can be manipulated with these functions.
This videos aims to give the viewer a basic demonstration of how a user can query current session information by using the SYS_CONTEXT function

688 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