2014-10-08 2 views
0

Только что начал использовать SSMS и возникли трудности с получением простых команд SQL для работы. Я попытался использовать мастер импорта/экспорта, но он не будет работать, поскольку в таблице назначения есть столбцы, которые недоступны в столбце источника, и эти столбцы не допускают значения NULL.Таблица UPDATE со значениями из таблицы в другой базе данных

Итак, мне нужно написать команду SQL, где я могу указать те столбцы со значениями, которые не являются NULL. Я считаю, что правильный способ достичь этого - использовать UPDATE? Я экспериментировал только с обновлением первичного ключа:

UPDATE db1.dbo.Customer 
SET No_ = v4.No_ 
FROM db2.dbo.Customer as v4 

При выполнении я получаю следующее сообщение:

(0 строк (ы) пострадавших)

+0

Что вы имеете в виду «указать те столбцы со значениями, которые не являются NULL»? –

+1

Привет. Я имею в виду, что мне нужно установить значение в этих столбцах. Они BOOLEAN, поэтому я решил, что в конце концов, я смогу установить его в FALSE через код, так как Wizard не позволит мне это сделать. Я просто хотел объяснить, почему Волшебник не работает для меня. –

ответ

0

Основная идея обновление из двух таблиц (независимо от базы данных) в SQL Server было бы примерно таким:

UPDATE c1 
    SET No_ = v4.No_ 
FROM db1.dbo.Customer c1 JOIN 
    db2.dbo.Customer v4 
    ON c1.CustomerId = v4.CustomerId; 

Другими словами, вам нужно определить, как строки совпадают между двумя таблицами, а затем вы можете установить значения в одной таблице для значений в другой.

+0

Еще раз спасибо! Кажется, что существует несколько конфликтов между этими таблицами, поскольку один из них имеет гораздо более старую версию. Возможно, вам просто нужно использовать CSV-файл. –

0
UPDATE db1.dbo.Customer 
SET No_ = c1.No_ 
FROM db2.dbo.Customer as 'c1' 
WHERE 
    db1.dbo.Customer.CustomerID = c1.CustomerID