INSERT INTO TB_TEAM_ROLE
-- TB_TEAM_ROLE에 새로운 레코드를 추가할 것이고
(TeamCode,TeamID,ItemID, TeamRoleCat, TeamRoleType, RoleDescription ,ManagerID,
RoleManagerID, FromTeamID, Assigned, AssignedDate, ProjectID ,ChangeSetID,
Status, Creator ,LastUpdated)
-- 위 순서대로 속성을 나열해서 추가할 것임
-- 아래 select문의 결과가 생성하는 테이블이 insert되는 대상임
-- insert문의 나열된 열과 select문의 나열된 열은 상응함
(SELECT TM_TXT.TeamCode,TM_TXT.TeamID, ITM.ItemID,'TEAMROLETP','REL', NULL, NULL,
NULL, NULL ,2, GETDATE(), NULL, ITM.CurChangeSet,'TMP', 1, GETDATE()
From TB_ITEM_ATTR ITM_ATR
-- 기준이 되는 테이블은 TB_ITEM_ATTR이고
-- 해당 쿼리문에서는 편의를 위해 ITM_ATR라고 지칭하겠음
INNER JOIN TB_ITEM ITM
-- TB_ITEM과 Join 시킬 것임
-- Inner Join이므로 둘 다 레코드가 존재하는 경우만 추출
ON ITM_ATR.ItemID = ITM.ItemID
-- Join 조건
Inner JOIN TB_TEAM_TXT TM_TXT
-- TB_TEAM_TXT Join 시킬 것임
-- Inner Join이므로 둘 다 레코드가 존재하는 경우만 추출
ON ITM_ATR.PlainText like'%'+TM_TXT.Name+'%'
-- Join 조건
-- ON 절에서 LIKE '%...%'를 사용하면 Full Scan이 발생할 가능성이 높아 성능 저하됨
-- 지양하는게 좋음
WHERE ITM_ATR.AttrTypeCode = 'AT00017' AND ITM_ATR.LanguageID = 1042)
-- Where 조건문으로 select문의 최종 결과 필터링함
-- 기준이 되는 TB_ITEM_ATTR에서 애초에 필터링하고 시작한다고 봐도 무방함