Нет, ваш код ничего не сделает, так как он недействителен.
Нечто подобное может; обратите внимание, что все значения NULL
вставляются в столбцы, которые не имеют значения source (выбрано из таблицы ic_velocity_v
):
insert into ic_mst_velocity
( article,
concatkey,
isdeleted,
lastmodifieddate,
mstid,
prodsubgrp,
skuid,
velocity,
whse
)
(select article,
concatkey,
null isdeleted,
cast(lastmodifieddate as timestamp) as lastmod,
null mstid,
prodsubgrp,
null skuid,
null velocity,
null whse
from ic_velocity_v
);
Или, более короткая версия без столбцов, которые не имеют никакого значения:
insert into ic_mst_velocity
( article,
concatkey,
lastmodifieddate,
prodsubgrp
)
(select article,
concatkey,
cast(lastmodifieddate as timestamp) as lastmod,
prodsubgrp
from ic_velocity_v
);
Будет ли работать какой-либо из них? Я не знаю; это зависит, например, от
- , если есть
NOT NULL
столбцы, но вы ничего не помещаете туда, он потерпит неудачу - , если есть триггер базы данных, который обрабатывает это, он не потерпит неудачу
- , если обеспечена уникальность и она нарушена, она потерпит неудачу
- может быть, вам понадобится предложение
where
, тогда?
- et c.
Как я уже сказал: это просто зависит .