0

データベースが異なる2つのテーブルがあります。

  • テーブル 'account' からの 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

今私がしたいのは、この「ONLY」を、異なるデータベース「GENESIS」を持つ「account」テーブルに接続された tblPolicy に挿入することです

4

2 に答える 2

1

以下に示すように、2 つのデータベースから選択できます。

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 に答える