내가 SQL에 아주 새로운 그리고 난 SQL 서버에 쓰기를 시도하고있어 절차와 약간의 도움을 찾고 결과 2005SQL 삽입/업데이트 테이블
나는 삽입하기 위해 노력하고있어 또는 쿼리 결과로 테이블을 업데이트 할 수 있습니다.
INSERT 벌금을 작성했으며 예상대로 작동하지만 레코드가 이미있는 경우 삽입 대신 업데이트하려고합니다.
내 현재 코드는 다음과 같습니다
INSERT INTO testTable
(field1 ,
field2 ,
field3,
field4,
field5 ,
)
select
'A000001'
table2.field2,
GETDATE() ,
GETDATE() ,
NULL ,
NULL ,
0
from
table1
INNER JOIN
table2 ON table1.field1 = table2.field1
INNER JOIN
table3 ON table2.field1 = table3.field1
INNER JOIN
table4 ON table3.field1 = table4.field1
WHERE condition
내가 선택에서 field2
는 testTable
에 이미있는 경우 다음이 대신 삽입의 업데이트합니다 있도록이를 변경하고 싶습니다. 나는 여러 레코드를 반환 할 수 있으므로이 작업을 수행하는 방법을 잘 모릅니다.
는 좀 다른 질문을 살펴 했어하지만 아무도 내가 대답 질문을 발견했습니다 (또는 여러 개의 레코드에 대한 답변을 변경하는 방법을 잘 모르겠어요)
이 어떤 도움 감사를!
감사합니다,
SQL Server 2008에는 MERGE가 도입되었습니다. 불행하게도 2008 이전 버전은 여러 문장을 포함하는 빈약 한 옵션을 남겨 둡니다 (하지만 SQL Server 2005 병합 또는 SQL Server 2005 업서 트를 검색하여 찾을 수 있어야 함) –
upserts를 보았지만 내 성명서를 사용해야 할 것입니다. 다시 이것이 정확한지 확실하지 않았습니다. 여러 레코드가 반환되면 이로 인해 문제가 발생합니까? – user2952149
쿼리의'select '부분이 비싼 경우 임시 테이블/테이블 변수에'select' 결과를 저장할 수 있습니다. –