【问题标题】:Cross-server SQL跨服务器 SQL
【发布时间】:2010-09-09 09:15:28
【问题描述】:

我想将数据从一台服务器的数据库移植到另一台服务器的数据库。 数据库都位于不同的 mssql 2005 服务器上。 复制可能不是一个选项,因为目标数据库是在 [时间间隔] 基础上从头开始生成的。

我更愿意做类似的事情

insert *
from db1/table1
into db2/table2
where rule1 = true

很明显,连接凭据会出现在这个脚本中。

【问题讨论】:

    标签: sql sql-server tsql linked-server cross-server


    【解决方案1】:

    我认为您想要做的是根据this msdn 文章创建一个链接服务器。然后,您将使用 4 部分对象名称进行选择,例如:

    Select * From ServerName.DbName.SchemaName.TableName
    

    【讨论】:

    • 有点晚了,但我现在才重新审视这个问题,是的,这看起来像是对我的问题的回答。虽然现在我意识到我的问题应该是我选择的答案的问题。一切都变得有点复杂......
    • 链接坏了:-(
    • 是的,这就是为什么人们会因为只有链接的答案而受到抨击
    • 如果没有链接,这个答案基本上与问题已经给出的信息相同。
    【解决方案2】:

    您可以像这样使用开放数据源:

    EXEC sp_configure 'show advanced options', 1
    GO
    RECONFIGURE
    GO
    
    EXEC sp_configure 'Ad Hoc Distributed Queries', 1
    GO
    RECONFIGURE
    GO
    
    
    SELECT  *
    FROM    OPENDATASOURCE('SQLOLEDB',
                       'Data Source=<Ip Of Your Server>;
                        User ID=<SQL User Name>;Password=<SQL password>').<DataBase name>.<SchemaName>.<Table Or View Name>
    
    Go
    

    【讨论】:

    【解决方案3】:

    是否可以选择 SQL Server 集成服务 (SSIS)?如果是这样,我会使用它。

    【讨论】:

      【解决方案4】:

      您是将数据库的全部内容从一台服务器传输到另一台服务器,还是只是从几个表中传输一些数据?

      对于这两个选项,SSIS 都可以完成这项工作,特别是如果您计划定期转移。

      如果您只是想从 1 个或 2 个表中复制一些数据,并且更喜欢在 SQL Management Studio 中使用 TSQL,那么您可以按照 pelser 的建议使用链接服务器

      1. 将源数据库服务器设置为链接服务器
      2. 使用以下语法访问数据
      select columnName1, columnName2, etc from serverName.databaseName.schemaName.tableName

      【讨论】:

        【解决方案5】:

        嗯,我不同意您对复制的评论。您可以通过从头开始创建数据库来启动复制,并且您可以通过更新可用的客户端数据库或简单地重新创建数据库来控制更新。

        自动复制将通过自动管理键和关系来简化您的工作。

        我认为最简单的做法是通过MSSQL Server Studio启动快照复制,获取T-SQL对应的脚本(即发布和订阅都对应的T-SQL指令),并将这些脚本记录为SQL 代理的作业列表中的作业或复制文件夹中的复制作业。

        【讨论】:

          【解决方案6】:

          你可以走链接服务器路线。

          你只是不能使用 select * into 你必须做一个 insert into select。

          如果您没有经验,我会避免复制,因为如果损坏可能难以修复,并且如果管理不当可能会出现其他问题。

          保持简单,尤其是在数据库很小的情况下。

          【讨论】:

            【解决方案7】:

            您可以使用数据转换服务来完成这项工作吗?这为做这种事情提供了各种各样的螺栓连接工具。

            您可以从 Microsoft 网站下载 SQL Server 2005 功能包 here

            【讨论】:

            • 您可能知道,SSIS 是 SQL Server 2005+ 的“新”DTS
            【解决方案8】:
            CREATE VIEW newR1 
            AS
            SELECT * from OPENQUERY ([INSTANCE_NAME], 'select * from DbName.SchemaName.TableName')
            

            【讨论】:

            • 这也需要链接服务器,所以基本上这只是遵循几年前提出的相同建议的另一种查询。
            猜你喜欢
            • 2018-05-29
            • 2014-10-13
            • 2016-05-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-10-14
            • 2011-07-23
            • 2011-01-17
            相关资源
            最近更新 更多