create procedure to insert/update a table every night


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'
                FIELDTERMINATOR = '|',
                ROWTERMINATOR = '\n'

SELECT * FROM customer


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.


Who is Participating?
frankyteeConnect With a Mentor Commented:
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
c.FirstName = s.FirstName
c.Age = s.Age
c.City  = s.City  
from customer c join customerStaging s
on =

--insert new
insert customer
select s.*
from customer c right join customerStaging s
on =
where is null
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.