从一个sql server选择到另一个sql server?
我想从一台服务器(data.Old.S1)中的一个表(T1,在DB1中)中选择数据,将其转换为另一台服务器(data.Latest.S2)中的另一个表(T2,在DB2中)中的数据。我该怎么做 请注意服务器的命名方式。查询也应该考虑到这一点。就是, SQL server不应混淆完全限定表名。例如,这可能会混淆SQL server-Data.Old.S1.DB1.dbo.T1从一个sql server选择到另一个sql server?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我想从一台服务器(data.Old.S1)中的一个表(T1,在DB1中)中选择数据,将其转换为另一台服务器(data.Latest.S2)中的另一个表(T2,在DB2中)中的数据。我该怎么做 请注意服务器的命名方式。查询也应该考虑到这一点。就是, SQL server不应混淆完全限定表名。例如,这可能会混淆SQL server-Data.Old.S1.DB1.dbo.T1 我还想要“映射”。例如T1的第1列应转到T2的第18列,等等。您可以查看以下内容: 或者您可以使用SSI,这可能要简单得多
我还想要“映射”。例如T1的第1列应转到T2的第18列,等等。您可以查看以下内容:
或者您可以使用SSI,这可能要简单得多。创建一个。然后使用sql语句 如果它只是一个适当的时间链接服务器。
select * into [newtable] from [linked_server].[databasename].dbo.[tablename]
但是,如果需要频繁移动数据,那么复制会更好、更容易。我认为坚持使用SQL会使它过于复杂。在SSMS中,右键单击要从中导出的服务器,选择“任务”、“导出”,然后让向导引导您完成选择目标服务器和表的步骤,其中包括完全按照SQL情况映射所有列。所有你想要的功能都已经存在了
不需要链接服务器、SSI或其他任何东西来实现这一点。它已经内置到SQL Server Management Studio中。使用SQL Server Management Studio的导入功能
基于公认的答案。
确保源服务器(服务器1)链接到目标服务器(服务器2):
DB1和DB2是如何相互通信的?链接服务器?这可以通过几种方式实现……最佳选择取决于您希望访问旧服务器的频率(一次迁移,或不断更新)。我想要SQL。我确实有SSI,但我需要根据我的情况通过sql来实现。将T1的Col1选择为T2的Col17,其中{some condition}将T1的Col1选择为T2的Col17,其中{some condition}链接服务器工作得很好。对于实际的sql查询,我没有使用openquery,我只是编写了一个标准的insert查询,而是使用下面另一个答案中的语法完全限定了链接服务器表,如:[linked_server].[databasename].dbo.[tablename]将T1的Col1选择到T2的Col17,其中{some condition}这通常不是真的。@AmirrezaKeshavarz-通常不是真的,您应该使用完全限定的表名。
SELECT *
INTO Server2.DB2.dbo.T2
FROM OPENQUERY (server1
, ' SELECT col_one, col_two, ...
FROM DB1.dbo.T1
WHERE ...
...
);