Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE @total_rows int
- SELECT @total_rows = count(*)
- FROM Source_Table
- WHILE @total_rows > (SELECT count(*) FROM Target_Table)
- BEGIN
- SET rowcount 1000
- print 'inserting 1000 rows'
- INSERT Target_Table
- SELECT *
- FROM Source_Table s
- WHERE NOT EXISTS( SELECT 1
- FROM Target_Table t
- WHERE t.id = s.id )
- END
- set rowcount 0
- print 'done'
- DECLARE @min_id int,
- @max_id int,
- @start_id int,
- @end_id int
- SELECT @min_id = min(id) ,
- @max_id = max(id)
- FROM Source_Table
- SELECT @start_id = @min_id ,
- @end_id = @min_id + 1000
- WHILE @end_id <= @max_id
- BEGIN
- print 'inserting id range: ' + convert(varchar,@start_id) + ' to ' + convert(varchar,@end_id)
- INSERT Target_Table
- SELECT *
- FROM Source_Table s
- WHERE id BETWEEN @start_id AND @end_id
- SELECT @start_id = @end_id + 1,
- @end_id = @end_id + 1000
- END
- set rowcount 0
- print 'done'
Add Comment
Please, Sign In to add comment