English 中文(简体)
跨服务器SQL
原标题:
  • 时间:2008-09-16 08:48:57
  •  标签:

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.

我更愿意做这样的事情

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

很明显,连接凭据会出现在这个脚本的某个位置。

最佳回答

我认为您要做的是根据此2015年msdn文章的网络存档快照本文来自learn.microsoft.com。然后,您可以使用由四部分组成的对象名称进行选择,例如:

Select * From ServerName.DbName.SchemaName.TableName
问题回答

您可以像这样使用开放数据源:

EXEC sp_configure  show advanced options , 1
GO
RECONFIGURE
GO

EXEC sp_configure  Ad Hoc Distributed Queries , 1
GO
RECONFIGURE
GO


SELECT  *
FROM    OPENDATASOURCE( SQLOLEDB ,
                    Data Source=<Ip Of Your Server>;
                    User ID=<SQL User Name>;Password=<SQL password> ).<DataBase name>.<SchemaName>.<Table Or View Name>

Go

SQL Server Integration Services(SSIS)是一个选项吗?如果是的话,我会用它。

您是将数据库的全部内容从一台服务器传输到另一台服务器,还是仅从几个表中传输一些数据?

对于这两个选项,SSIS都可以完成这项工作,尤其是如果您计划定期进行转移。

如果您只是想从1或2个表中复制一些数据,并且更喜欢在SQL Management Studio中使用TSQL,那么您可以按照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

我不同意你对复制的评论。您可以通过从头开始创建数据库来启动复制,也可以通过更新可用的客户端数据库或简单地重新创建数据库来控制更新。

自动复制将通过自动管理密钥和关系来简化您的工作。

我认为最简单的方法是通过MSSQLServerStudio启动快照复制,获取T-SQL相应的脚本(即发布和订阅的相应T-SQL指令),并将这些脚本作为作业的一部分记录在SQL代理的作业列表中,或作为复制文件夹中的复制作业记录。

你可以走链接服务器的路线。

你不能使用select*into,你必须在select中插入。

如果您没有复制经验,我会避免复制,因为如果它坏了,很难修复,而且如果管理不当,很容易出现其他问题。

保持简单,尤其是在数据库很小的情况下。

你能使用数据转换服务来完成这项工作吗?这为做这类事情提供了各种螺栓连接的工具。

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

CREATE VIEW newR1 
AS
SELECT * from OPENQUERY ([INSTANCE_NAME],  select * from DbName.SchemaName.TableName )




相关问题
热门标签