选择从一个sql server进入另一个?

时间:2013-10-18 21:50:46

标签: sql sql-server sql-server-2008

我想从一个服务器(Data.Old.S1)中的一个表(T1,在DB1中)中选择数据到另一个服务器(Data.Latest.S2)中另一个表(在DB2中的T2)中的数据。我怎样才能做到这一点 ?

请注意服务器的命名方式。查询也应该处理这个问题。那是, 不应将SQL服务器与完全限定的表名混淆。例如 - 这可能会混淆SQL服务器 - Data.Old.S1.DB1.dbo.T1。

我也想要“映射”。例如,T1的Col1应该到T2等的Col18。

7 个答案:

答案 0 :(得分:7)

创建linked server。然后使用openquery sql语句。

答案 1 :(得分:5)

使用Sql Server Management Studio的导入功能。

  1. 右键单击对象资源管理器中的数据库,然后选择导入
  2. 选择您的源数据库
  3. 选择目标数据库
  4. 选择“指定自定义查询”选项,然后在DB1
  5. 中选择T1中的数据
  6. 在目标数据库中选择目标表,即T2
  7. 执行导入

答案 2 :(得分:4)

select * into [newtable] from [linked_server].[databasename].dbo.[tablename]

答案 3 :(得分:0)

你可以看看这个:

Clicky!

或者您可以使用SSIS,这可能会更简单。

答案 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 ...
                    ...
                );