views:

1406

answers:

7
+3  Q: 

Cross-server SQL

I want to port data from one server's database to another server's database. The databases are both on a different mssql 2005 server. Replication is probably not an option since the destination database is generated from scratch on a [time interval] basis.

Preferebly I would do something like

insert *
from db1/table1
into db2/table2
where rule1 = true

It's obvious that connection credentials would go in somehwere in this script.

A: 

Can you use the Data Transformation Services to do the job? This provides all sorts of bolt-together tools for doing this kind of thing.

You can download the SQL Server 2005 feature pack from Microsoft's website here

Thomas Rushton
As you probably know, SSIS is the 'new' DTS for SQL Server 2005+
Galwegian
A: 

Are SQL Server Integration Services (SSIS) an option? If so, I'd use that.

Galwegian
A: 

Thanks, didn't know about those things. Looks like SSIS is the new DTS.

I don't have any expirience with it, but will check around on the firm for anyone in the know. Thx

borisCallens
+3  A: 

I think what you want to do is create a linked server as per this msdn article. You would then select using a 4 part object name eg:

Select * From ServerName.DbName.SchemaName.TableName
Matthew Pelser
Despite the fact that you selected SSIS as the answer, I think Linked Servers are what you are really looking for.
Portman
Agreed, this is the answer to the question
ScottStonehouse
A bit late, but I only now revisited this question and yes, this looks like an answer to my question. Although by now I realise my question should have been the question to the answer that I selected. All getting a bit complicated...
borisCallens
A: 

Would you be transferring the whole content of the database from one server to another or just some data from a couple of tables?

For both options SSIS would do the job especially if you are planning to to the transfer on a regular basis.

If you simply want to copy some data from 1 or 2 tables and prefer to do it using TSQL in SQL Management Studio then you can use linked server as suggested by pelser

  1. Set up the source database server as a linked server
  2. Use the following syntax to access data
select columnName1, columnName2, etc from serverName.databaseName.schemaName.tableName
kristof
A: 

Well I don't agree with your comment on replication. You can start a replication by creating a database from scratch, and you can control either the updates will be done by updating the available client database or simply recreating the database.

Automated replication will ease your work by automatically managing keys and relations.

I think the easiest thing to do is to start a snapshot replication through MSSQL Server Studio, get the T-SQL corresponding scripts (ie the corresponding T-SQL instructions for both publication and subscriptions), and record these scripts as part of a job in the Jobs list of the SQL Agent or as a replication job in the replications folder.

Philippe Grondier
A: 

You could go the linked server route.

you just can't use the select * into you have to do an insert into select.

I would avoid replication if you don't have experience with it as it can be difficult to fix if it breaks and can be prone to other problems if not properly managed.

Keep it simple especially if the databases are small.