이 병합 성명서는 나에게 비효율적 인 것으로 보입니다. 삽입/업데이트 전 완전히 새로운 테이블을 만든 다음 해당 테이블에 병합하여 더 좋은 방법이 있습니까?비효율적 인 1 행의 병합
DECLARE @dbEntry TABLE(
Email varchar(100)
,DateRedeemed datetime
)
INSERT INTO @dbEntry VALUES (@Email, @DateRd)
MERGE [dbo].[Redeemers] AS dbTarget
USING
(
SELECT * FROM @dbEntry
)
AS dbSource
ON
(
dbSource.Email = dbTarget.Email
)
WHEN MATCHED
....
WHEN NOT MATCHED
...
추 신 :이 쿼리는 표시 목적으로 단순화되었으며, 더 많은 열과 이전과 이후의 작업이 더 많습니다.
"비효율적 인"것은 무엇을 의미합니까? 달성하려는 것은 무엇입니까? 주어진 진술은 너무 일반적이어서 더 나은 해결책이 있는지 알기 어렵습니다. –
새 테이블을 만들고 삽입하지 않고 들어오는 매개 변수를 병합하는 방법이 있습니까? – RealityDysfunction
'완전히 새로운 테이블 '그것은 테이블 변수가 아니라 테이블입니다. 실제 영구 지속 테이블보다 테이블 변수를 생성하는 오버 헤드가 훨씬 적습니다. 또한 단일 행을 삽입합니다. – Brandon