Я нашел здесь много других сообщений о том, как это сделать, но не уверен, как написать начальный оператор выбора, который проверяет имя системы и оператор обновления, так как там задействована временная таблица. Я очень хорошо работаю с хранимыми процедурами, не говоря уже о временных таблицах, поэтому я в растерянности Я понимаю, что происходит то, что данные поступают на SP через канал XML (этот шаг здесь не показан). Данные из фида xml затем сохраняются во временной таблице. Поскольку SP написан прямо сейчас, SP вставляет данные из временной таблицы в реальную таблицу. Мне нужно добавить шаг, который проверяет, существует ли имя системы, и если оно существует, обновите его, а если нет, то вставьте его. Мне нужна помощь с оператором IF EXISTS select и запросом на обновление, пожалуйста.
Вот исходное утверждение, которое состоит только из вставки.
оригинальное заявление
insert into si_systemdetail(projectname, systemname, contactsbcuid, sdverifier, systemtype, location, proposedlivedate, status, bkpsa, pripsa,platform)
select
@project, systemname, contactsbcuid, sdverifier,systemtype, location,
proposedlivedate, 'Initial', bkpsa, pripsa, @platform
from @systemInfo
where status in ('Production','Production w/o Appl')
and systemname not in (select systemname from si_systemdetail)
and @project is not null`
обновленная выписка
IF EXISTS (select systemname from si_systemdetail WHERE systemname = (select systemname from @systemInfo where systemname in (select systemname from si_systemdetail) and @project is not null))
BEGIN
-- update query
UPDATE si_systemdetail
SET **I DO NOT KNOW HOW TO WRITE THIS SECTION**
WHERE
systemname IN (select systemname from si_systemdetail)
AND @project is not null
END
ELSE
BEGIN
-- Write your insert query
insert into si_systemdetail(projectname, systemname, contactsbcuid, sdverifier,
systemtype, location, proposedlivedate, status, bkpsa, pripsa, platform)
select
@project, systemname, contactsbcuid, sdverifier,systemtype, location,
proposedlivedate, 'Initial', bkpsa, pripsa, @platform
from @systemInfo
where status in ('Production','Production w/o Appl')
and systemname not in (select systemname from si_systemdetail)
and @project is not null
END