我想从一个服务器(Data.Old.S1)中的一个表(T1,DB1)中选择数据到另一个服务器(Data.Latest.S2)的另一个表(T2,DB2)中的数据。我怎样才能做到这一点 ?
请注意服务器的命名方式。查询也应该考虑到这一点。也就是说,SQL Server 不应该对完全限定的表名感到困惑。例如 - 这可能会混淆 SQL 服务器 - Data.Old.S1.DB1.dbo.T1。
我也想要“映射”。例如,T1 的 Col1 应该转到 T2 的 Col18 等。
我想从一个服务器(Data.Old.S1)中的一个表(T1,DB1)中选择数据到另一个服务器(Data.Latest.S2)的另一个表(T2,DB2)中的数据。我怎样才能做到这一点 ?
请注意服务器的命名方式。查询也应该考虑到这一点。也就是说,SQL Server 不应该对完全限定的表名感到困惑。例如 - 这可能会混淆 SQL 服务器 - Data.Old.S1.DB1.dbo.T1。
我也想要“映射”。例如,T1 的 Col1 应该转到 T2 的 Col18 等。
使用 Sql Server Management Studio 的导入功能。
select * into [newtable] from [linked_server].[databasename].dbo.[tablename]
我认为您坚持使用 SQL 会使它过于复杂。在 SSMS 中,右键单击要从中导出的服务器,选择“任务”、“导出”,然后让向导引导您完成选择目标服务器和表的步骤,其中包括完全按照您的方式映射所有列'正在尝试处理您的 SQL 情况。您似乎正在寻找的所有功能都已经存在。
不需要链接服务器、SSIS 或其他任何东西来完成此操作。它已经内置在 SQL Server Management Studio 中。
如果它只是适当的一次链接服务器。但是如果需要频繁移动数据,复制会更好更容易。
基于接受的答案。
确保源服务器 (server1) 链接到目标服务器 (server2):
SELECT *
INTO Server2.DB2.dbo.T2
FROM OPENQUERY (server1
, ' SELECT col_one, col_two, ...
FROM DB1.dbo.T1
WHERE ...
...
);