SQL Server에 여러 필드가있는 테이블이 있습니다. 두 가지는 IDNumber이고 Resolved (Date) Resolved는 SQL Server에서 Null입니다. 그런 다음 IDNumber 및 Resolved (Date) 데이터를 가져 와서 테이블을 가져오고 업데이트합니다. 일치하는 IDNumber를 찾고 업데이트 된 해결 날짜를 넣길 원합니다. 어떻게해야합니까?SSIS 특정 열 업데이트
감사합니다.
SQL Server에 여러 필드가있는 테이블이 있습니다. 두 가지는 IDNumber이고 Resolved (Date) Resolved는 SQL Server에서 Null입니다. 그런 다음 IDNumber 및 Resolved (Date) 데이터를 가져 와서 테이블을 가져오고 업데이트합니다. 일치하는 IDNumber를 찾고 업데이트 된 해결 날짜를 넣길 원합니다. 어떻게해야합니까?SSIS 특정 열 업데이트
감사합니다.
업데이트를 수행 할 때 SSIS는 한 번에 한 행을 업데이트하므로 비용이 많이 듭니다.
IF (OBJECT_ID(N'dbo.tmpIDNumberStaging') IS NOT NULL
DROP TABLE dbo.tmpIDNumberStaging;
CREATE TABLE dbo.tmpIDNumberStaging
( IDNumber INT NOT NULL,
Resoved DATE NOT NULL
);
그런 다음 소스가 무엇인지 (확실하지 않은이 테이블에 데이터를 가져올 데이터 흐름 태스크를 사용하지만, 목적지가 OLE DB Destination
될 것이다 : 나는 준비 테이블을 생성하는 SQL 실행 작업을 사용하도록 권합니다. 데이터 흐름 작업의 "지연 유효성 검사"를 false로 설정하거나 런타임에 대상이 만들어지기 때문에 대상에서 "외부 메타 데이터의 유효성 검사"를 false로 설정해야 할 수도 있습니다.
마지막으로 메인 테이블을 업데이트하려면이 준비 테이블을 사용 (및 청소 준비 테이블을 드롭)
UPDATE YourMainTable
SET Resolved = st.Resolved
FROM YourMainTable t
INNER JOIN dbo.tmpIDNumberStaging st
ON st.IDNumber = t.IDNumber
WHERE t.Resolved IS NULL;
-- CLEAN UP AND DROP STAGING TABLE
IF (OBJECT_ID(N'dbo.tmpIDNumberStaging') IS NOT NULL
DROP TABLE dbo.tmpIDNumberStaging;
이것은 또한 트릭을 할 것입니다. 스테이징 테이블은 좋은 생각이며, 생각하지 않았습니다. –
훌륭한 전략! 최근에 테이블의 여러 행에 대한 열 값을 업데이트하는 데이 방법을 사용했는데이 전략은 매우 효율적이었습니다. 감사. – gurkan
그래서 당신은, SSIS에서 IDNumber은 다음 테이블에 해결 추가 일치 싶어? 내가 너를 정확하게 읽고 있는지 확인하고있어. –
예 그냥 ID를 일치시키고 해결 된 것을 첨부하십시오 –