이 작업을 수행하는 방법에 대한 다른 많은 게시물을 발견했지만 시스템 이름과 업데이트 문을 확인하는 초기 select 문을 작성하는 방법을 알지 못합니다. 임시 테이블이 관련되어 있습니다. 나는 저장 프로 시저 (stored procedure)로 작업하기에 매우 초록색이므로 임시 테이블을 사용하지 않아서 손실을 입었다. 내가 이해할 수있는 것은 데이터가 XML 피드를 통해 SP로 공급된다는 것입니다 (이 단계는 여기에 표시되지 않음). 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`
당신은 단순히 UPDATE
를 실행하려고하면 다음 @@ROWCOUNT
을 확인하여 하나 개의 쿼리를 저장할 수 있습니다
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
검색어를 어떻게 읽나요? 들여 쓰기, 캐리지 리턴 및 어쩌면 대문자로 된 키워드의 자유로운 사용을 강력히 권장합니다. 형식이 더 좋은 경우 {} 버튼을 사용하여 질문에있는 코드를 더 예쁘게 만드십시오. 이는 백틱 (예 : 색상 코딩)과 다르게 작동합니다. –
아, 고맙습니다. @ marc_s! –
@marc_s! 서식을 주셔서 감사합니다. @ aaron-bertrand - 중괄호 사용을 잊어 버렸습니다. 팁 주셔서 감사. MS SQL Server Management Studio에서 쿼리를 읽었습니다. – HPWD