8

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

请注意服务器的命名方式。查询也应该考虑到这一点。也就是说,SQL Server 不应该对完全限定的表名感到困惑。例如 - 这可能会混淆 SQL 服务器 - Data.Old.S1.DB1.dbo.T1。

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

4

7 回答 7

8

创建链接服务器。然后使用openquery sql 语句。

于 2013-10-18T21:57:03.127 回答
8

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

  1. 右键单击对象资源管理器中的数据库并选择导入
  2. 选择您的源数据库
  3. 选择你的目标数据库
  4. 选择“指定自定义查询”选项,然后从 DB1 中的 T1 中选择您的数据
  5. 在目标数据库中选择您的目标表,即 T2
  6. 执行导入
于 2016-11-03T20:25:15.933 回答
4
select * into [newtable] from [linked_server].[databasename].dbo.[tablename]
于 2013-10-18T21:53:52.263 回答
1

我认为您坚持使用 SQL 会使它过于复杂。在 SSMS 中,右键单击要从中导出的服务器,选择“任务”、“导出”,然后让向导引导您完成选择目标服务器和表的步骤,其中包括完全按照您的方式映射所有列'正在尝试处理您的 SQL 情况。您似乎正在寻找的所有功能都已经存在。

不需要链接服务器、SSIS 或其他任何东西来完成此操作。它已经内置在 SQL Server Management Studio 中。

于 2016-06-30T18:29:49.277 回答
0

如果它只是适当的一次链接服务器。但是如果需要频繁移动数据,复制会更好更容易。

于 2013-10-18T22:48:01.160 回答
0

你可以看看这个:

咔哒!

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

于 2013-10-18T21:53:19.317 回答
0

基于接受的答案。
确保源服务器 (server1) 链接到目标服务器 (server2):

SELECT * 
INTO Server2.DB2.dbo.T2
FROM OPENQUERY (server1
                , ' SELECT col_one, col_two, ...
                    FROM DB1.dbo.T1 
                    WHERE ...
                    ...
                );
于 2019-05-16T22:18:49.167 回答