Aktualisierungswert aus referencetabelle

Ich arbeite mit Sql server 2008 Ich habe zwei Tabellen und eine reference table.table1 enthält,

Id Name test1 test2 1 sss started processing 2 asdfasd started processing 

Tabelle 2 enthält,

  Id Name test1 test2 1 sss 2 2 2 asdfasd 3 2 

referencetabelle hat,

  code Name 1 Started 2 processing 3 stopped 

Ich muss Update-Abfrage schreiben, um die Tabelle 2 Werte wie folgt zu ändern,

  Id Name test1 test2 1 sss 1 2 2 asdfasd 1 2 

Wie schreibe ich Update-Abfrage für das obige Szenario?

Hier finden Sie das folgende Beispiel.

Sie können dies in einem UPDATE tun

 DECLARE @table1 Table (ID INT, NAME VARCHAR(100), test1 VARCHAR(100), test2 VARCHAR(100)) INSERT INTO @table1 SELECT 1, 'sss', 'started', 'processing' INSERT INTO @table1 SELECT 2, 'asdfasd', 'started', 'processing' DECLARE @table2 Table (ID INT, NAME VARCHAR(100), test1 INT, test2 INT) INSERT INTO @table2 SELECT 1, 'sss', 2, 2 INSERT INTO @table2 SELECT 2, 'asdfasd', 3, 2 DECLARE @refTable Table (CODE INT, NAME VARCHAR(100)) INSERT INTO @refTable SELECT 1, 'Started' INSERT INTO @refTable SELECT 2, 'processing' INSERT INTO @refTable SELECT 3, 'stopped' UPDATE T2 SET test1 = R1.Code, test2 = R2.Code FROM @table2 T2 INNER JOIN @table1 T1 ON T1.ID = T2.ID INNER JOIN @refTable R1 ON T1.test1 = R1.Name INNER JOIN @refTable R2 ON T1.test2 = R2.Name SELECT * FROM @table2