2016-12-05 5 views
1

У меня есть две базы данных, testFrom и testTo. Их цель - взять значения столбцов выбора из testFrom и перезаписать те же самые столбцы в testTo. Обе базы данных имеют дело с таблицей с таким же именем, dbo.People. Эти две базы данных не имеют одинакового количества записей, поэтому передача не будет быть 1: 1. Из-за этого я работаю над запросом, который обновляет значения существующих строк и вставляет оставшиеся данные для тех, которые этого не делают.Обновить столбцы, когда они не равны нулю и вставить, когда они равны нулю

В настоящее время мое обновление работает, но вставка добавит новые строки с нулевыми значениями вместо значений от testFrom. Я не уверен, где я ошибаюсь, может ли это быть заявлением о присоединении к моей вставке?

UPDATE to_p 
    SET to_p.DottedID = from_p.DottedID, to_p.Name = from_p.Name, to_p.Colour = from_p.Colour, to_p.Food = from_p.Food 
    FROM testFrom.dbo.people to_p left join testTo.dbo.People from_p on to_p.Name = from_p.Name 
    WHERE from_p.Name IS NOT NULL; 
INSERT INTO testTo.dbo.People (to_p.DottedID, to_p.Name, to_p.Colour, to_p.Food) 
    SELECT from_p.DottedID, from_p.Name, from_p.Colour, from_p.Food 
    FROM testFrom.dbo.people to_p left join testTo.dbo.People from_p on to_p.Name = from_p.Name 
    WHERE from_p.Name IS NULL; 

Выход следующим

enter image description here

ответ

1

Вы выбираете столбцы из-за неправильной таблицы. изменить INSERT заявление, как показано ниже

INSERT INTO testTo.dbo.People (DottedID, Name, Colour, Food) 
    SELECT to_p.DottedID, to_p.Name, to_p.Colour, to_p.Food 
    FROM testFrom.dbo.people to_p left join testTo.dbo.People from_p 
    on to_p.Name = from_p.Name 
    WHERE from_p.Name IS NULL; 
+0

Это говорит 0 строк, которые, когда я исполняю после рекомендуемого изменения – BlueBarren

+0

@BlueBarren, да ошибся. См. Редактирование в ответ, если это помогает. – Rahul

+0

Да, это более или менее работает спасибо. Теперь у меня есть только одна старая запись, хотя – BlueBarren

 Смежные вопросы

  • Нет связанных вопросов^_^