2016-06-09 2 views
3

У меня есть две таблицы в двух системах с одинаковой структурой. Я хочу, чтобы обновить данные в одной таблице на другиеОбновление данных из одной таблицы в другую с ошибкой

update Table1 
set VIEW_CD = cmn.VIEW_CD, 
    VIEW_DETAIL = cmn.VIEW_DETAIL 
FROM dbo.Table1 tbl 
INNER JOIN dbo.Table2 cmn ON tbl.id = cmn.id 

обеих колонн в обеих таблицах, являются нулевые столбцы, но я в конечном итоге, за исключением

Не удается вставить значение NULL в столбце столбца делает не разрешать нули. INSERT терпит неудачу.

ответ

0

Попробуйте это:

update Table1 
    set  VIEW_CD = cmn.VIEW_CD, 
    VIEW_DETAIL = cmn.VIEW_DETAIL 
    FROM dbo.Table1 tbl 
    INNER JOIN dbo.Table2 cmn ON tbl.id = cmn.id 
where VIEW_CD IS NOT NULL AND VIEW_DETAIL IS NOT NULL 

выше обновит Table1 со всеми записями из Table2, где записи не содержат каких-либо NULL значения.

1

Я считаю, что проблема в том, что у вас есть NOT NULL ограничение на Table1, вы должны бросить его:

ALTER TABLE dbo.Table1 ALTER COLUMN VIEW_CD <columnType> NULL 

Или это:

ALTER TABLE dbo.Table1 ALTER VIEW_CD DROP NOT NULL 

И затем выполнить запрос еще раз.

+0

Я пробовал вышеуказанные инструкции alter, но все равно не удалось. Причина «Невозможно вставить значение NULL в столбец столбца не допускает нулей. INSERT терпит неудачу». В моем сценарии ошибка была вызвана триггером, который запускался до того, как выполняется инструкция обновления. – user3595236

+0

@ user3595236 Сделайте это и во втором столбце 'VIEW_DETIAL'. – sagi

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