2017-09-01 23 views
-1

2つの異なる接続文字列を使用する2つのSQL Serverインスタンス(LocalDbおよびLiveDb)があります。現在、C#のSqlBulkCopyを使用して、LivedbからlocalDbにマスターテーブルを転送しています。これはうまく動作し、非常に高速です。別のSQL Server上のテーブルのデータに基づいて、あるSQL Server上のテーブルを更新します。

しかし、私はのレコードのクエリに基づいて私のLiveDbのテーブルにUPDATEテーブルが必要です。 C#Windowsアプリケーションでこれを行う例はありますか?あなただけのリンクサーバーをセットアップする必要がありますように

+0

LiveDBプロダクションデータベースはありますか? – Amit

+0

はい。私のアプリはタイムクロックで、私が書いていることをチェックイン/チェックアウトします。プログラムは、SQLのローカルインスタンス上で完全に実行されます。これは30秒ごとにレコードのチェックをライブプロダクションDBに書き込みます。私の問題は、ローカルDBのチェックアウトが発生したときに、ライブDBのフィールドを更新する方法です。 – Jeff

+0

もう少し詳しい情報。ライブDBで更新する必要があるレコードは、ローカルDBのレコードに基づいています – Jeff

答えて

1

は、あなたがそれを行うと、それはこのような何か(あなたのLiveDb接続を使用して、これを実行する)

update l 
    set l.someColumn = lo.someColumn 
from 
    TableName l      --live db here... 
inner join 
    LocalDb.dbo.TableName lo on  --linked server 
    lo.TableNameID = l.TableNameID --or what ever join condition 

かになります... here's a good note on that.

サウンズあなたが何らかのステージングプロセスを行っていたら、おそらくこのようなものです。

select 
    ... 
into #myTempTable   --often faster to stage data when pulling from linked server 
from 
    LocalDb.dbo.TableName --linked server 

update l 
    ... 
TableName l      --live db here... 
etc... 
関連する問題