我希望将一个服务器数据库的数据移植到另一个服务器的数据库中。 这两个数据库都在不同的mssql 2005服务器上。 由于目标数据库是按[时间间隔]生成的,因此复制可能不是一个选项。
最好的情况是我想做一些像这样的事情
insert *
from db1/table1
into db2/table2
where rule1 = true
很明显,连接凭据需要在此脚本中的某个位置输入。
我希望将一个服务器数据库的数据移植到另一个服务器的数据库中。 这两个数据库都在不同的mssql 2005服务器上。 由于目标数据库是按[时间间隔]生成的,因此复制可能不是一个选项。
最好的情况是我想做一些像这样的事情
insert *
from db1/table1
into db2/table2
where rule1 = true
很明显,连接凭据需要在此脚本中的某个位置输入。
我认为您想要做的是根据这篇来自2015年的msdn文章的WebArchive快照或者这篇来自learn.microsoft.com的文章创建一个链接服务器。然后,您可以使用4个部分的对象名进行选择,例如:
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
select columnName1, columnName2, etc from serverName.databaseName.schemaName.tableName
SQL Server Integration Services (SSIS) 是一个选择吗?如果是的话,我会使用它。
我不同意你关于复制的评论。您可以通过从头开始创建数据库来启动复制,并且您可以控制更新是通过更新可用客户端数据库还是仅重新创建数据库来完成。
自动化复制将通过自动管理密钥和关系来简化您的工作。
我认为最简单的方法是通过MSSQL Server Studio启动快照复制,获取相应的T-SQL脚本(即发布和订阅的相应T-SQL指令),并将这些脚本记录为SQL Agent作业列表中的一部分或者作为复制文件夹中的复制作业。
你可以选择使用链接服务器的方法。
但是,你不能使用 select * into 语句,而是需要使用 insert into select 语句。
如果你没有相关经验,我建议避免使用复制功能,因为一旦出现问题,修复起来会很困难,而且如果管理不当,还容易出现其他问题。
尤其是对于小型数据库,保持简单最好。
你可以使用数据转换服务来完成这项工作吗?它提供了各种可组合的工具来完成这种任务。
你可以从微软网站这里下载SQL Server 2005功能包。
CREATE VIEW newR1
AS
SELECT * from OPENQUERY ([INSTANCE_NAME], 'select * from DbName.SchemaName.TableName')