0

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

  • 表“帐户”中的 AccntID <--数据库名称“ECPNWEB”
  • 表“tblPolicy”中的 AccountTID <--数据库名称“GENESIS”

现在我想像这样插入“tblPolicy”:<--database 'GENESIS'

  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”的“帐户”表连接的 tblPolicy

4

2 回答 2

1

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

SELECT table1.SomeField, table2.SomeField
FROM   [ServerName1].[Database1].[dbo].[Table1] table1
       INNER JOIN [ServerName2].[Database2].[dbo].[Table2] table2
       ON table1.SomeField = table2.SomeField
于 2012-10-25T01:36:42.320 回答
0

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

这应该工作

;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 
于 2012-10-25T03:52:13.757 回答