2011-07-18 9 views
0

よく知られているブロガーが作成したレプリケーションスクリプトの一部を使用しています。私は以下に列挙する部分に、1行しか保持しない完全に異なる表から1列を追加したいと考えています。基本的には、単一の行を持つ表にはサイト名があり、その表のそのサイト名をこのINSERT INTOの一部として移入する必要があります。同じサーバー上の別のDBを参照するサブクエリを使用して列に挿入する

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

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; 

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

答えて

0

通常の方法で2番目のテーブルに参加できます。この他のテーブルに行が1つしかない場合(そして1つの行のみになります)、結果は2倍にならないでしょう。このように:

INSERT INTO dbo.dba_replicationMonitor (_column_list_) 
SELECT [email protected]_, b.sitename 
FROM @TokenResults as a 
JOIN tblSiteInfo as b 
ON 1 = 1 
+0

ありがとうX-Zero –

関連する問題