0

有名なブロガーによって書かれたレプリケーション スクリプトの一部を使用しています。以下にリストした部分に、1行しか保持しないまったく別のテーブルからさらに1列を追加したいと思います。基本的に、単一行のテーブルにはサイト名があり、そのテーブルのサイト名をこの INSERT INTO の一部として入力する必要があります。

SQL 2005 で OUTER APPLY が導入されたことは知っていますが、それが最善の方法であるかどうかはわかりません。どんな提案も大歓迎です。ありがとう。

Insert Into dbo.dba_replicationMonitor
(
      monitorDate
    , publicationName
    , publicationDB
    , iteration
    , tracer_id
    , distributor_latency
    , subscriber
    , subscriber_db
    , subscriber_latency
    , overall_latency
    , SiteNameFromSiteInfoTable  --Need to add this


)
Select 
      @currentDateTime
    , @publicationToTest
    , @publicationDB
    , iteration
    , tracer_id
    , IsNull(distributor_latency, 0)
    , subscriber
    , subscriber_db
    , IsNull(subscriber_latency, 0)
    , IsNull(overall_latency, 
        IsNull(distributor_latency, 0) + IsNull(subscriber_latency, 0
        )
    , sitename = 'SELECT sitename FROM tblSiteInfo'  --need this query to insert as well
)
From @tokenResults;

変数を考えていましたが、変数を渡すだけでは十分ではないと思います。どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

0

通常どおり 2 番目のテーブルに参加できます。この別のテーブルに行が 1 つしかない場合 (そして今後も 1 行しかない場合)、結果が 2 倍になることはありません。したがって、次のようになります。

 INSERT INTO dbo.dba_replicationMonitor (_column_list_)
 SELECT _@ToeknResultsColumns_, b.sitename
 FROM @TokenResults as a
 JOIN tblSiteInfo as b
 ON 1 = 1
于 2011-07-18T20:26:36.613 に答える