如何将表的记录从数据库检索到另一个数据库

Posted

技术标签:

【中文标题】如何将表的记录从数据库检索到另一个数据库【英文标题】:How to retrieve the records of the table from database to another database 【发布时间】:2012-10-25 01:22:32 【问题描述】:

我有两个不同数据库的表:

表 'account' 中的 AccntID 表'tblPolicy'中的AccountTID

现在我想像这样插入“tblPolicy”:

  INSERT INTO dbo.tblPolicy
      ( 

        PolicyID                 ,
        AccountTID               ,
        DistributorID            ,
        CARDNAME                 ,
        DENOMINATION             ,
        RETAILPRICE              ,
        COSTPAYABLE              ,
        ECPAYFEES                ,
        PLUCODE 

      ) 
-- Insert statements for procedure here


select t.* from
(Select  AccountTID=@AccntID, DistributorID=@DistributorID, CARDNAME=@CARDNAME, DENOMINATION=@DENOMINATION, RETAILPRICE=@RETAILPRICE, COSTPAYABLE=@COSTPAYABLE, ECPAYFEES=@ECPAYFEES, PLUCODE=@PLUCODE) t,
account a
where a.AccntID = t.AccountTID --for account

现在我要做的是将此“仅”插入到与具有不同数据库'GENESIS'的'account'表连接的tblPolicy

【问题讨论】:

【参考方案1】:

您可以从如下所示的两个数据库中进行选择:

SELECT table1.SomeField, table2.SomeField
FROM   [ServerName1].[Database1].[dbo].[Table1] table1
       INNER JOIN [ServerName2].[Database2].[dbo].[Table2] table2
       ON table1.SomeField = table2.SomeField

【讨论】:

如何获取表账户的值到表tblPolicy? @Yaqub 艾哈迈德 @Kristian Hernan C. Manuel ,关键是 [ServerName].[DatabaseName].[databaseowner].[tableName] 可以查询account表吗?比如:SELECT * FROM [ServerName].[Database].[dbo].[account] @Yaqub Ahmad 是的,我查询它并且它工作正常。并且知道我收到另一个错误。为链接服务器“(null)”的提供程序“本地服务器”指定了无效的架构或目录. 哎呀,您的链接服务器有问题!我建议发布关于此的另一个问题..【参考方案2】:

关键点是 [ServerName].[DatabaseName].[databaseowner].[tableName]..i.e.完全限定名称

这应该可以工作

;With Cte As
(
    Select AccountTID=@AccntID
    , DistributorID=@DistributorID
    , CARDNAME=@CARDNAME
    , DENOMINATION=@DENOMINATION
    , RETAILPRICE=@RETAILPRICE
    , COSTPAYABLE=@COSTPAYABLE
    , ECPAYFEES=@ECPAYFEES
    , PLUCODE=@PLUCODE
)

INSERT INTO GENESIS..dbo.tblPolicy
  ( 
    PolicyID                 ,
    AccountTID               ,
    DistributorID            ,
    CARDNAME                 ,
    DENOMINATION             ,
    RETAILPRICE              ,
    COSTPAYABLE              ,
    ECPAYFEES                ,
    PLUCODE 

  ) 

Select t.*
From Cte t,ECPNWEB..account a WITH (NOLOCK) 
where a.AccntID = t.AccountTID 

【讨论】:

感谢您的努力,但我怎样才能获得表帐户的值 这是我收到的错误无法在 sysservers 中找到服务器“GENESIS”。执行 sp_addlinkedserver 将服务器添加到 sysservers。 @Kristian Hernan C. Manuel 如果您确实从 ECPNWEB 中选择前 10 * 名,那么您不会获得价值。.account a WITH (NOLOCK) @Kristian Hernan C. Manuel 的错误,请检查***.com/questions/10226692/… 执行程序时出现此错误。为链接服务器“(null)”的提供程序“本地服务器”指定了无效的架构或目录

以上是关于如何将表的记录从数据库检索到另一个数据库的主要内容,如果未能解决你的问题,请参考以下文章

MySQL如何复制表中的一条记录并插入

使用 C# dataAdapter.Fill() 和 dataAdapter.Update() 将表的数据从一个数据库传输到另一个数据库的同一个表

ABAP 中内表的复制

如何将表的行从一个数据库插入另一个数据库(使用两个PDO)

将表从一个数据库复制到另一个数据库的最简单方法?

将表从一个数据库复制到另一个数据库的最简单方法?