January 17, 2014 at 10:11 am
Company is doing server and application update.
I need to copy about 100 tables from server A to server B.
Since the project is under test mode and I need to do the same copy job once week.
Can some expert tell me which way is the best way to do it?
Now, I use "Import data..." to do it but every time need to select a lot of tables.
January 17, 2014 at 10:26 am
With the import/export data wizard, you have the option to save the SSIS package for later use. That way, you can use it as it is or do any modifications needed without creating all again and again.
January 17, 2014 at 10:52 am
Sounds like maybe a good job for Snapshot Replication...
http://technet.microsoft.com/en-us/library/ms151832.aspx
Todd Carrier
MCITP - Database Administrator (SQL 2008)
MCSE: Data Platform (SQL 2012)
January 17, 2014 at 12:06 pm
Snapshot replication is great for this, but is there a reason why you couldn't just automate a restore of the database backups. That way you can also verify the backups you are currently making are good.
January 17, 2014 at 12:11 pm
Because I only need to import all tables which my applications will need.(user tables)
Someone else will do the rest.
Backup will backup all objects.
January 17, 2014 at 1:00 pm
I created SSIS and ran it.
It copied all tables I need but missing all index from source server.
How to copy exactly the same index for all tables as in source server?
There is no any option to set it up.
January 17, 2014 at 1:07 pm
You could create the scripts for the tables with the option to script indexes (and probably other dependent objects).
You can use the script in a Execute SQL Task at the beginning of the package ensuring that you have the validation to drop existing objects.
January 17, 2014 at 1:18 pm
So far you have a couple options.
Snapshot Replication
Restore backup
Script out the objects
Export Data Teir Application
January 20, 2014 at 6:19 pm
You could also use filegroup backups. Move all the user tables to a separate filegroup and back up and restore just the tables you need.
Keep in mind any foreign keys
January 22, 2014 at 2:38 pm
adonetok (1/17/2014)
Company is doing server and application update.I need to copy about 100 tables from server A to server B.
Since the project is under test mode and I need to do the same copy job once week.
Can some expert tell me which way is the best way to do it?
Now, I use "Import data..." to do it but every time need to select a lot of tables.
I've done this hundreds of times with SSIS. You can also use BCP, but SSIS is probably easier. If both table's schemas are the same, you should be ok. You can create the Indexes after, which I do recommend, so your insertion process will be also faster.
Important! Set identity insert on on SSIS so you can preserve original IDs, in case you have one on each table.
You can compare both sets, after you finish, with following T-SQL query. Just adjust and change names accordingly:
--Compare both sets. It should return no rows.
SELECT n.ID AS [DeletedID], o.ID AS [InsertedID]
FROM dbo.Copy n
FULL OUTER JOIN dbo.Source o
ON (n.ID = o.ID)
WHERE o.ID IS NULL OR n.ID IS NULL
If source and target are the same, it will return no rows. Otherwise, above query will show you what was deleted and what was inserted.
Last but not least, be sure to run SSIS or copy from one table to other during off peak hours or a maintenance window. If not, you will generate some locks on the source table and you will take the chance or not getting both tables totally sync'ed.
Viewing 10 posts - 1 through 9 (of 9 total)
You must be logged in to reply to this topic. Login to reply