2
내 파이썬 프로그램의 테이블에서 Upsert를 수행하려고합니다. 나는 MERGE 명령을 찾았지만 그것은 두 테이블을 병합하는 것과 관련이있는 것으로 보인다. 하나의 쿼리에서 테이블로 필드를 UPDATE/INSERT하고 싶습니다.SQL 서버에서 동일한 소스/대상 테이블과 함께 MERGE 사용
DELETE보다 빠르며 INSERT 또는 SELECT를 선택한 다음 [INSERT/UPDATE]를 수행하고 MERGE 작업을 시도하려고합니다. 그러나 SSMS에서 실행하면 모두 데이터베이스 테이블의 행이 업데이트됩니다.
쿼리는 다음과 같습니다
는MERGE INTO [LastPriceUpdate] USING
(SELECT [EventID] FROM [LastPriceUpdate] where [EventID] = 1501845) AS source
ON (source.[EventID] = 1501845)
WHEN MATCHED THEN UPDATE SET [LastPriceUpdate] = getdate() -- where clause not allowed
WHEN NOT MATCHED BY TARGET THEN INSERT ([EventID], [LastPriceUpdate]) VALUES (1501845, getdate());
그 쿼리는 모든 행을 업데이트하고 나는 단지 그것을 GETDATE() 이벤트 ID = {somenumber}
가능한 대답과 함께 LastPriceUpdate 열 업데이트 할 : 이 힘을 고쳐야한다. ON 부분에서 표적을 사용하십시오.
MERGE INTO [LastPriceUpdate] AS target USING
(SELECT [EventID] FROM [LastPriceUpdate] where [EventID] = 1501845) AS source
ON (target.[EventID] = 1501845)
WHEN MATCHED THEN UPDATE SET [LastPriceUpdate] = getdate() -- where clause not allowed
WHEN NOT MATCHED BY TARGET THEN INSERT ([EventID], [LastPriceUpdate]) VALUES (1501845, getdate());
멋진 작업 - 내 작업보다 빠른 작업 –