2015-02-03 2 views
0

На рисунке ниже у меня есть таблица, на которой я выполнил запрос INSERT. Этот SQL-запрос добавляет эту информацию в качестве новых записей. Я хочу добавить их в записи, которые уже существуют (как видно на рисунке). Это возможно? Может быть, с заявлением UPDATE? Любая помощь будет принята с благодарностью.Инструкция UPDATE SQL

table data view

текущего оператора SQL:

INSERT INTO ShouldImportMetricsIDsTable 
      (FormularyName,ClientName) 
SELECT [Formulary Name], 
     [Client Name] 
FROM FN_DataDump_ALL_02012015 as F 
WHERE EXISTS (SELECT 1 
       FROM mytable as M 
       WHERE F.formularyId = M.formularyId) 
+0

если вы добавления существующих записей, то да, использование UPDATE – user3479671

+0

Пробовали ли вы [поиск обновления SQL] (https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=sql%20update) – crashmstr

+0

Я сделал, но я не уверен, как изменить выше для ОБНОВЛЕНИЯ существующих записей. –

ответ

2

Что-то вроде этого следует сделать трюк:

UPDATE ShouldImportMetricsIDsTable AS Imp 
INNER JOIN FN_DataDump_ALL-02012015 AS F 
    ON Imp.FormularyId = F.FormularyId 
SET Imp.FormularyName = F.FormularyName, 
    Imp.ClientName = F.ClientName 
WHERE Imp.FormularyId = F.FormularyId 

Я не чувствовал, что присоединение к myTable будет необходимо, но если вы необходимо просто добавить это до SET:

INNER JOIN myTable AS M 
    ON F.formularyId = M.formularyId 

Если вы сделаете это вы, возможно, придется использовать некоторые из этих шаткий скобок из Access SQL, например:

UPDATE ((ShouldImportMetricsIDsTable AS Imp 
INNER JOIN FN_DataDump_ALL-02012015 AS F 
    ON Imp.FormularyId = F.FormularyId) 
INNER JOIN myTable AS M 
    ON F.formularyId = M.formularyId) 
SET Imp.FormularyName = F.FormularyName, 
    Imp.ClientName = F.ClientName 
WHERE Imp.FormularyId = F.FormularyId 
Смежные вопросы