2017-08-29 6 views
0

私は私のlocalDbサーバー(SQL 2014)の下でリンクサーバーテストDbのを持っています。のデータの同期(SQL)

Valid State(Id(int PK),Abbreviation(char) ,Name, IsActive) 

が、私はこれらのリンクサーバーと私のテーブルの間でデータを同期する必要があります。私はテーブルを持っている私のテストDbの内部

Valid State(StateId(char Pk), Name, Desc, CreatedBy, UpdatedBy) 

リンクサーバーはテーブルを持っています。 SQL-Mergeを実装できる状況に対処する方法は何でしょうか。 私はいくつかのアイディアを得ましたhttp://www.sqlservercentral.com/articles/T-SQL/66066/

私は、テーブル構造がSAMEの場合にクエリが動作するポイントに到達します。しかし、構造が異なるところでは状況が異なります。任意の提案は高く評価されます:) ありがとう!実際に、これはあなたがやりたいだろうと一致するシステム間のidを想定すると

+0

構造が同じではないシナリオの例を挙げることができますか? – Eli

+0

私はこれを2つの異なるサーバー間のデータ同期に使用しています(リンクされたサーバーを使用する必要があります - いくつかの理由があります)。私が作ったかどうかわからない –

+0

これを試してみてください:https://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/両方のサーバーのサンプルデータと試したもの - このように、私たちはあなたが遭遇しているエラー/問題を手助けすることができます – Eli

答えて

0

は:

-- Insert any new records 
INSERT INTO [Valid State](Id,Name, IsActive) 
SELECT StateId, Name 
FROM LinkedServer.database.schema.[Valid State] SRC 
WHERE NOT EXISTS (
    SELECT * FROM [Valid State] TGT WHERE TGT.ID = SRC.StateID 
    ) 


-- Update any existing records 
UPDATE TGT 
SET Name = SRC.Name 
FROM [Valid State] TGT 
INNER JOIN 
LinkedServer.database.schema.[Valid State] SRC 
ON SRC.StateID = TGT.ID 

も、あなたの避難所を求めるすべてこの後に」あなたは残りの分野で何をしたいのかを説明しました。だから私はそれらを残しました

関連する問題