3
어떤 이유로이 때문에 "테이블에 중복 레코드를 삽입 할 수 없습니다"오류가 발생합니다.레코드가 이미 존재하지 않으면 테이블에 삽입
DECLARE @CreditDebitAdjustmentDetail TABLE
(
CustomerID INT,
AdjustmentReason VARCHAR(50)
)
INSERT INTO @CreditDebitAdjustmentDetail
(CustomerID, AdjustmentReason)
VALUES (143, -- CustomerID - int
'024' -- AdjustmentReason - varchar(50)
)
INSERT INTO [DMS].[dbo].[Deductions]
(
CustomerID,
DeductionCode,
DeductionDescription
)
SELECT b.CustomerID,
b.AdjustmentReason,
b.AdjustmentReason
FROM @CreditDebitAdjustmentDetail b
WHERE NOT EXISTS (SELECT 1
FROM [DMS].[dbo].[Deductions]
WHERE CustomerID = b.CustomerID
AND DeductionCode = b.AdjustmentReason)
그리고 레코드가 이미 존재하기 때문에이 테이블에 삽입하지 않습니다 :
는INSERT INTO [DMS].[dbo].[Deductions]
(
CustomerID,
DeductionCode,
DeductionDescription
)
SELECT b.CustomerID,
b.AdjustmentReason,
b.AdjustmentReason
FROM @CreditDebitAdjustmentDetail b
WHERE NOT EXISTS (SELECT 1
FROM [DMS].[dbo].[Deductions]
WHERE CustomerID = b.CustomerID
AND DeductionCode = b.AdjustmentReason)
이상한 것은 내가 등을 테스트합니다.
여기에 뭔가가 있습니까?
편집 - 내가이 일을하여 고정했다하지만 난 여전히 같은 오류를 받고 있어요 생각은 :
INSERT INTO [DMS].[dbo].[Deductions]
(
CustomerID,
DeductionCode,
DeductionDescription
)
SELECT a.CustomerID,
a.AdjustmentReason,
a.AdjustmentReason
FROM @CreditDebitAdjustmentDetail a
WHERE NOT EXISTS (SELECT 1
FROM [DMS].[dbo].[Deductions] b
WHERE a.CustomerID = b.CustomerID
AND a.AdjustmentReason = b.DeductionCode)
이 DeductionCode'가'은'Deductions' 테이블이나 사용되는 테이블 중 하나에 NULL'입니다'아마도'CustomerId' 당신의 인덱스 – user2615302
를 살펴 또는 업데이트. 하나의'NULL'은 허용되지만, 다중'NULL'은 허용되지 않습니다. –
PK에있는 열은 무엇입니까? – twrowsell