2017-12-12 6 views
-2

表Bの2つの列を更新するには、表Bの「Emp_Id」と「Name」の2つの列が必要です。SQL Serverの表Aから表Bへの特定の列の更新

INSERT INTO UserLeaves(Emp_id,Name) 
SELECT Emp_Id,Name 
FROM UserInfo 

は、私はちょうどテーブルに連結するために、表Aからの新しいデータが必要になります。私はこれまでのところだけで表Bに表Aの列を挿入してやったが、それは単に同じデータを2回挿入何

B.

+0

だからあなたは 'UPDATE'を試してみましたが? – HoneyBadger

+0

@ HoneyBadger私は "UPDATE UserLeaves SET UserLeaves.Name = UserInfo.Name FROM UserLeaves JOIN UserInfo ON UserLeaves.Emp_id = UserInfo.Emp_Id"を使ってみましたが、それはしません。 – Repub619

+0

「テーブルBに連結する」とはどういう意味ですか?例を挙げてください。 –

答えて

0

あなただけINSERT新しいレコードにしたいと仮定し、いないUPDATE任意の既存のレコード:

INSERT INTO TableB (Emp_ID, [Name]) 
SELECT A.Emp_ID, A.[Name] 
FROM TableA A 
WHERE NOT EXISTS (SELECT B.EmpID 
        FROM TableB B 
        WHERE B.EmpID = A.EmpID); 
+0

[this](https://stackoverflow.com/questions/47777493)に基づく/ update-specific-columns-table-a-table-b-in-sql-server#comment82516233_47777493)コメントでは、ユーザーは既存のデータを更新し、新しいデータを挿入する必要があります。 –

+0

ありがとうございました – Repub619

+0

質問とコメントは矛盾しているようです。答えは現在の質問に基づいています。 OPが 'UPDATE'と' INSERT'の後にある場合、おそらく 'MERGE'ステートメントの候補です。 – Larnu

関連する問題