SQL Server의 테이블 B에서 새로운 기록을 참조하여 테이블 A에 열 :업데이트 내가 정기적으로 두 테이블에 새로운 데이터를 삽입 할 필요가
표 mstr_project
때마다 내가 하나 개의 프로젝트에 레코드를 삽입 (1 열). ID 열 Project_ID
이 있으므로 새 프로젝트 레코드가 삽입 될 때마다 프로젝트 ID가 자동으로 생성됩니다.
표 tbl_ProjectData
. 새 프로젝트의 새 데이터 200 행을 삽입 할 때마다 테이블 mstr_project
에 추가됩니다.
내 질문 - 새로운 기록을 새로 테이블 mstr_project
에 Project_ID
생성에 걸릴 있도록 어떻게, tbl_ProjectData
의 모든 시간을 ProjectID
열을 업데이트합니까? 즉, 테이블 tbl_ProjectData
의 200 개의 새 레코드는 항상 mstr_project
테이블에 생성 된 것과 동일한 ProjectID
을 사용합니다. 에 주목, 두 번째 코드에 대한
CREATE TABLE #NewProjectIDs (
ProjectID int NOT NULL PRIMARY KEY CLUSTERED
);
INSERT dbo.mstr_project (Name)
OUTPUT ProjectID INTO #NewProjectIDs
SELECT 'My New Project';
INSERT dbo.tbl_ProjectData (ProjectID, Value)
SELECT N.ProjectID, V.Value
FROM
#NewProjectIDs
CROSS JOIN #ProjectDataValues V;
:
이DECLARE @ProjectID int;
INSERT dbo.mstr_project (Name) VALUES ('My New Project');
SET @ProjectID = Scope_Identity();
INSERT dbo.tbl_ProjectData (ProjectID, Value)
SELECT @ProjectID, Value
FROM #ProjectDataValues;
당신은 또한 OUTPUT
절 (SQL 서버 최대 2005)를 사용하여 삽입 된 값을 캡처 할 수 있습니다 :