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