Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8456901
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 10, 20262026-06-10T12:40:05+00:00 2026-06-10T12:40:05+00:00

Migrating data from Access into SQL Server. SQL Server table defines inst_id, cons_code, and

  • 0

Migrating data from Access into SQL Server. SQL Server table defines inst_id, cons_code, and eff_date_time column as primary key. The eff_date_time data coming from access is not unique so I was attempting to increment the seconds field by one second so I would have a unique datetime. I can’t get DATEADD to increment the date by 1 second. Attached is my code. What am I doing wrong???

USE [CON-INST]  
GO

DECLARE  
@cv_InstId      VARCHAR(25),  
@cv_ConsCode    VARCHAR(10),  
@cv_EffDateTime DATETIME,  
@lv_count INT  

DECLARE BumpDate_Cursor CURSOR  
STATIC  
FOR  
          SELECT inst_id, cons_code, eff_date_time  
            FROM [CON-INST].[dba].[constants_temp]  
           ORDER BY inst_id  

OPEN BumpDate_Cursor

FETCH FIRST FROM BumpDate_Cursor  
 INTO @cv_InstId, @cv_ConsCode, @cv_EffDateTime

SET @lv_count = 1

// Debug statements  
PRINT '@cv_InstId = ' + @cv_InstId  
PRINT '@cv_ConsCode = ' + @cv_ConsCode  
PRINT '@cv_EffDateTime = ' + CONVERT(VARCHAR, @cv_EffDateTime)  
PRINT '@lv_count = ' + CONVERT(VARCHAR, @lv_count)  

-- Loop to iterate thru instruments identifying the various constant
types that are needed, i.e. the column names - constant 1, constant 2,
constant 3, station, offset, etc.  
WHILE @@FETCH_STATUS = 0  
-- do processing  
BEGIN  
  PRINT '@lv_count before = ' + CONVERT(VARCHAR, @lv_count)  
  PRINT CONVERT(VARCHAR, @cv_EffDateTime, 121)  
  IF (CONVERT(VARCHAR, @cv_EffDateTime,121) = '1901-01-01 17:00:00.000')  
     BEGIN  
        UPDATE [CON-INST].[dba].[constants_temp]  
           SET eff_date_time = DATEADD(second, @lv_count, eff_date_time)  
         WHERE inst_id = @cv_InstId and cons_code = @cv_ConsCode;  
        PRINT CONVERT(VARCHAR, @cv_EffDateTime, 121)  
     END  

  FETCH NEXT FROM BumpDate_Cursor  
   INTO @cv_InstId, @cv_ConsCode, @cv_EffDateTime  

  SET @lv_count = @lv_count + 1  
  PRINT '@lv_count after = ' + CONVERT(VARCHAR, @lv_count)  
END

CLOSE BumpDate_Cursor

DEALLOCATE BumpDate_Cursor

Data in table prior to update
inst_id cons_code eff_date_time constant entry_user enter code entry_date update_user update_date
1 PU 1901-01-01 17:00:00.000 833.2 dba 2012-08-02 11:07:33.770 NULL NULL
1 PU 1901-01-01 17:00:00.000 821.6 dba 2012-08-02 11:07:33.770 NULL NULL
1 PU 1901-01-01 17:00:00.000 8 dba 2012-08-02 11:07:33.770 NULL NULL
1 PU 1901-01-01 17:00:00.000 2251 dba 2012-08-02 11:07:33.770 NULL NULL
2 PU 1901-01-01 17:00:00.000 2251 dba 2012-08-02 11:07:33.770 NULL NULL
2 PU 1901-01-01 17:00:00.000 22 dba 2012-08-02 11:07:33.770 NULL NULL
2 PU 1901-01-01 17:00:00.000 820.9 dba 2012-08-02 11:07:33.773 NULL NULL
2 PU 1901-01-01 17:00:00.000 833.2 dba 2012-08-02 11:07:33.773 NULL NULL
3 PU 1901-01-01 17:00:00.000 833.2 dba 2012-08-02 11:07:33.773 NULL NULL
3 PU 1901-01-01 17:00:00.000 821.5 dba 2012-08-02 11:07:33.773 NULL NULL
3 PU 1901-01-01 17:00:00.000 8 dba 2012-08-02 11:07:33.773 NULL NULL
3 PU 1901-01-01 17:00:00.000 2095 dba 2012-08-02 11:07:33.773 NULL NULL
4 PU 1901-01-01 17:00:00.000 2095 dba 2012-08-02 11:07:33.777 NULL NULL
4 PU 1901-01-01 17:00:00.000 22 dba 2012-08-02 11:07:33.777 NULL NULL
4 PU 1901-01-01 17:00:00.000 820.5 dba 2012-08-02 11:07:33.777 NULL NULL
4 PU 1901-01-01 17:00:00.000 833.2 dba 2012-08-02 11:07:33.777 NULL NULL
A PU 1901-01-01 17:00:00.000 833.2 dba 2012-08-02 11:07:33.777 NULL NULL
A PU 1901-01-01 17:00:00.000 816.8 dba 2012-08-02 11:07:33.777 NULL NULL
A PU 1901-01-01 17:00:00.000 120.5 dba 2012-08-02 11:07:33.780 NULL NULL
A PU 1901-01-01 17:00:00.000 2255 dba 2012-08-02 11:07:33.780 NULL NULL
A-1 AS 1972-07-01 00:00:00.000 1492 dba 2012-08-02 11:07:33.780 NULL NULL
A-1 AS 1972-07-01 00:00:00.000 986.48 dba 2012-08-02 11:07:33.780 NULL NULL
A-1 AS 1972-07-01 00:00:00.000 0 dba 2012-08-02 11:07:33.780 NULL NULL
A-10 AS 1972-07-01 00:00:00.000 0 dba 2012-08-02 11:07:33.780 NULL NULL
A-10 AS 1972-07-01 00:00:00.000 986.48 dba 2012-08-02 11:07:33.780 NULL NULL
A-10 AS 1972-07-01 00:00:00.000 1857 dba 2012-08-02 11:07:33.780 NULL NULL
A-11 AS 1972-07-01 00:00:00.000 1896 dba 2012-08-02 11:07:33.783 NULL NULL
A-11 AS 1972-07-01 00:00:00.000 986.5 dba 2012-08-02 11:07:33.783 NULL NULL
A-11 AS 1972-07-01 00:00:00.000 0 dba 2012-08-02 11:07:33.783 NULL NULL
A-12 AS 1972-07-01 00:00:00.000 0 dba 2012-08-02 11:07:33.783 NULL NULL
A-12 AS 1972-07-01 00:00:00.000 986.5 dba 2012-08-02 11:07:33.783 NULL NULL
A-12 AS 1972-07-01 00:00:00.000 1936 dba 2012-08-02 11:07:33.783 NULL NULL

Output from PRINT statements during execution

@cv_InstId = 1

@cv_ConsCode = PU

@cv_EffDateTime = Jan 1 1901 5:00PM

@lv_count = 1

Before update: 1901-01-01 17:00:00.000

@lv_count = 2

Before update: 1901-01-01 17:00:00.000

@lv_count = 3

Before update: 1901-01-01 17:00:00.000

@lv_count = 4

Before update: 1901-01-01 17:00:00.000

@lv_count = 5

Before update: 1901-01-01 17:00:00.000

@lv_count = 6

Before update: 1901-01-01 17:00:00.000

@lv_count = 7

Before update: 1901-01-01 17:00:00.000

@lv_count = 8

Before update: 1901-01-01 17:00:00.000

@lv_count = 9

Before update: 1901-01-01 17:00:00.000

@lv_count = 10

Before update: 1901-01-01 17:00:00.000

@lv_count = 11

Before update: 1901-01-01 17:00:00.000

@lv_count = 12

Before update: 1901-01-01 17:00:00.000

@lv_count = 13

Before update: 1901-01-01 17:00:00.000

@lv_count = 14

Before update: 1901-01-01 17:00:00.000

@lv_count = 15

Before update: 1901-01-01 17:00:00.000

@lv_count = 16

Before update: 1901-01-01 17:00:00.000

@lv_count = 17

Before update: 1901-01-01 17:00:00.000

@lv_count = 18

Before update: 1901-01-01 17:00:00.000

@lv_count = 19

Before update: 1901-01-01 17:00:00.000

@lv_count = 20

Before update: 1901-01-01 17:00:00.000

@lv_count = 21

Before update: 1972-07-01 00:00:00.000

@lv_count = 22

Before update: 1972-07-01 00:00:00.000

@lv_count = 23

Before update: 1972-07-01 00:00:00.000
@lv_count = 24

Before update: 1972-07-01 00:00:00.000

@lv_count = 25

Before update: 1972-07-01 00:00:00.000

Table Output after Execution
inst_id cons_code eff_date_time constant entry_user entry_date update_user update_date
1 PU 1901-01-01 17:00:00.000 833.2 dba 2012-08-02 11:28:27.287 NULL NULL
1 PU 1901-01-01 17:00:00.000 821.6 dba 2012-08-02 11:28:27.287 NULL NULL
1 PU 1901-01-01 17:00:00.000 8 dba 2012-08-02 11:28:27.290 NULL NULL
1 PU 1901-01-01 17:00:00.000 2251 dba 2012-08-02 11:28:27.290 NULL NULL
2 PU 1901-01-01 17:00:00.000 2251 dba 2012-08-02 11:28:27.290 NULL NULL
2 PU 1901-01-01 17:00:00.000 22 dba 2012-08-02 11:28:27.290 NULL NULL
2 PU 1901-01-01 17:00:00.000 820.9 dba 2012-08-02 11:28:27.290 NULL NULL
2 PU 1901-01-01 17:00:00.000 833.2 dba 2012-08-02 11:28:27.290 NULL NULL
3 PU 1901-01-01 17:00:00.000 833.2 dba 2012-08-02 11:28:27.290 NULL NULL
3 PU 1901-01-01 17:00:00.000 821.5 dba 2012-08-02 11:28:27.290 NULL NULL
3 PU 1901-01-01 17:00:00.000 8 dba 2012-08-02 11:28:27.290 NULL NULL
3 PU 1901-01-01 17:00:00.000 2095 dba 2012-08-02 11:28:27.293 NULL NULL
4 PU 1901-01-01 17:00:00.000 2095 dba 2012-08-02 11:28:27.293 NULL NULL
4 PU 1901-01-01 17:00:00.000 22 dba 2012-08-02 11:28:27.293 NULL NULL
4 PU 1901-01-01 17:00:00.000 820.5 dba 2012-08-02 11:28:27.293 NULL NULL
4 PU 1901-01-01 17:00:00.000 833.2 dba 2012-08-02 11:28:27.293 NULL NULL
A PU 1901-01-01 17:00:00.000 833.2 dba 2012-08-02 11:28:27.293 NULL NULL
A PU 1901-01-01 17:00:00.000 816.8 dba 2012-08-02 11:28:27.293 NULL NULL
A PU 1901-01-01 17:00:00.000 120.5 dba 2012-08-02 11:28:27.297 NULL NULL
A PU 1901-01-01 17:00:00.000 2255 dba 2012-08-02 11:28:27.297 NULL NULL
A-1 AS 1972-07-01 00:00:00.000 1492 dba 2012-08-02 11:28:27.297 NULL NULL
A-1 AS 1972-07-01 00:00:00.000 986.48 dba 2012-08-02 11:28:27.297 NULL NULL
A-1 AS 1972-07-01 00:00:00.000 0 dba 2012-08-02 11:28:27.297 NULL NULL
A-10 AS 1972-07-01 00:00:00.000 0 dba 2012-08-02 11:28:27.297 NULL NULL
A-10 AS 1972-07-01 00:00:00.000 986.48 dba 2012-08-02 11:28:27.300 NULL NULL
A-10 AS 1972-07-01 00:00:00.000 1857 dba 2012-08-02 11:28:27.300 NULL NULL
A-11 AS 1972-07-01 00:00:00.000 1896 dba 2012-08-02 11:28:27.300 NULL NULL
A-11 AS 1972-07-01 00:00:00.000 986.5 dba 2012-08-02 11:28:27.300 NULL NULL
A-11 AS 1972-07-01 00:00:00.000 0 dba 2012-08-02 11:28:27.300 NULL NULL
A-12 AS 1972-07-01 00:00:00.000 0 dba 2012-08-02 11:28:27.300 NULL NULL
A-12 AS 1972-07-01 00:00:00.000 986.5 dba 2012-08-02 11:28:27.300 NULL NULL
A-12 AS 1972-07-01 00:00:00.000 1936 dba 2012-08-02 11:28:27.300 NULL NULL
A-13 AS 1972-07-01 00:00:00.000 1976 dba 2012-08-02 11:28:27.300 NULL NULL
A-13 AS 1972-07-01 00:00:00.000 986.46 dba 2012-08-02 11:28:27.300 NULL NULL
A-13 AS 1972-07-01 00:00:00.000 0 dba 2012-08-02 11:28:27.303 NULL NULL
A-14 AS 1972-07-01 00:00:00.000 0 dba 2012-08-02 11:28:27.303 NULL NULL
A-14 AS 1972-07-01 00:00:00.000 986.48 dba 2012-08-02 11:28:27.303 NULL NULL
A-14 AS 1972-07-01 00:00:00.000 2016 dba 2012-08-02 11:28:27.303 NULL NULL
A-15 AS 1972-07-01 00:00:00.000 0 dba 2012-08-02 11:28:27.303 NULL NULL

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-10T12:40:07+00:00Added an answer on June 10, 2026 at 12:40 pm

    There are a few prolems with the code, but the main one is the update statement – which updates multiple records in the database at a time. For example, when the loop runs the first update, it updates the four records where inst_id = ‘1’ and const_code = ‘PU’, adding 1 second to each of them. On the second iteration, it then adds 2 seconds to all four records, 3 seconds to all four records on the third iteration, and finally 4 seconds to all four records on the fourth iteration (making all of them 1+2+3+4=10 seconds after 5pm).

    The best solution is to add a new column, ID, which is of type INT IDENITY PRIMARY KEY and drop the composite primary key on the inst_id, cons_code, and eff_date_time columns.

    However, if for some reason, you must use the composite primary key on these three fields, then here’s the code to do it.

    NOTE: You can’t just add some unique number to each date because you might get to the point where you’ve made so many one second increments that it actually clashes with another value you encounter in the table. That’s the reason for the EXISTS portion of the code.

    drop table [constants_temp]
    go
    drop table [constants_new]
    go
    
    create table [constants_temp] (
      inst_id       varchar(25),
      cons_code     varchar(10),
      eff_date_time datetime
    )
    
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('1',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('1',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('1',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('1',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('2',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('2',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('2',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('2',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('3',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('3',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('3',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('3',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('4',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('4',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('4',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('4',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('A',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('A',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('A',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('A',    'PU', '1901-01-01 17:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('A-1',  'AS', '1972-07-01 00:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('A-1',  'AS', '1972-07-01 00:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('A-1',  'AS', '1972-07-01 00:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('A-10', 'AS', '1972-07-01 00:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('A-10', 'AS', '1972-07-01 00:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('A-10', 'AS', '1972-07-01 00:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('A-11', 'AS', '1972-07-01 00:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('A-11', 'AS', '1972-07-01 00:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('A-11', 'AS', '1972-07-01 00:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('A-12', 'AS', '1972-07-01 00:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('A-12', 'AS', '1972-07-01 00:00:00.000')
    insert into [constants_temp] (inst_id, cons_code, eff_date_time) values ('A-12', 'AS', '1972-07-01 00:00:00.000')
    
    -- Create a table with the idential structure as [constants_temp], except with the composite primary key on all three fields
    create table [constants_new] (
      inst_id       varchar(25),
      cons_code     varchar(10),
      eff_date_time datetime,
      PRIMARY KEY (inst_id, cons_code, eff_date_time)
    )
    
    -- Variables to hold the column values from each row in the cursor
    DECLARE @Cur_inst_id       VARCHAR(25)
    DECLARE @Cur_cons_code     VARCHAR(10)
    DECLARE @Cur_eff_date_time DATETIME
    
    -- Go through all of the records in the [constants_temp] table
    DECLARE BumpDate_Cursor CURSOR FOR
     SELECT inst_id, 
            cons_code, 
            eff_date_time  
       FROM [constants_temp]  
      ORDER BY inst_id, cons_code, eff_date_time
    
    -- Open the cursor and get the first record
    OPEN BumpDate_Cursor
    FETCH NEXT FROM BumpDate_Cursor INTO @Cur_inst_id, @Cur_cons_code, @Cur_eff_date_time
    
    -- For all the the records in the cursor...
    WHILE @@FETCH_STATUS = 0  
      BEGIN
        -- While there is already a record with a matching institution code, cons code, and effective date...
        WHILE EXISTS (SELECT inst_id
                        FROM [constants_new] 
                       WHERE inst_id       = @Cur_inst_id       and
                             cons_code     = @Cur_cons_code     and
                             eff_date_time = @Cur_eff_date_time)
          BEGIN
            -- Keep incrementing the effective date by one second
            set @Cur_eff_date_time = DATEADD(second, 1, @Cur_eff_date_time)
          END
    
        -- Insert the new unique row
        INSERT INTO [constants_new] (inst_id, cons_code, eff_date_time) VALUES (@Cur_inst_id, @Cur_cons_code, @Cur_eff_date_time)
    
        -- Get the next record in the cursor
        FETCH NEXT FROM BumpDate_Cursor INTO @Cur_inst_id, @Cur_cons_code, @Cur_eff_date_time
      END
    
    -- Close and deallocate the cursor
    CLOSE BumpDate_Cursor
    DEALLOCATE BumpDate_Cursor
    
    -- Show the results
    select * from [constants_new] order by inst_id, cons_code, eff_date_time
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm migrating data between tables in Access 2003. In the old table, the date
I was tasked with migrating data from a MSSQL server to a MySQL server.
We are migrating a database from MySQL to SQL Server. The migration is pretty
I am working on migrating a bunch of data from an old database into
I'm migrating some data from one oracle schema/table to a new schema/table on the
I'm trying to write a SQL script to migrate data from some old table
I'm working on migration of data from a legacy system into our new app(running
I have a table full of attendance data for students, we are migrating to
THE TASK: I am in the process of migrating a DB from MS Access
i am migrating from ms access database to mysql database with java frontend so

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.