2011-12-15 4 views
1

Table A에 세 개의 새 열을 추가했는데 이제 표 TEXT의 기본 키를 채워야합니다. 각각의 새 셀에 대해 새 TEXT 레코드를 만들어야합니다. 새 레코드를 만들고 테이블의 각 새 필드에 기본 키를 저장하는 가장 좋은 방법은 무엇입니까? Table A 10 개 레코드가 있는지새 열에 새 외래 키 삽입

예를 들어, I는 새로운 30 (10 × 3) TEXT 레코드를 생성하고 (30 개) 새로운 셀의 각 고유 TEXT ID을 갖도록 Table A에 자신의 ID를 삽입 할 필요가있다.

답변

0
CREATE TABLE A 
(
    ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED 
    , Column1 INT NULL 
    , Column2 INT NULL 
    , Column3 INT NULL 
) 

CREATE TABLE TEXT 
(
    ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED 
    , [Column] INT NULL 
) 

INSERT INTO A (Column1, Column2, Column3) 
SELECT 1, 2, 3 

INSERT INTO A (Column1, Column2, Column3) 
SELECT 4, 5, 6 

INSERT INTO A (Column1, Column2, Column3) 
SELECT 7, 8, 9 

select ID, Column1, Column2, Column3 
from A 

select ID, [Column] 
FROM [TEXT] 

INSERT INTO TEXT([Column]) 
SELECT TEXTID 
FROM 
    (SELECT ID, Column1, Column2, Column3 
    FROM A) Tmp 
UNPIVOT 
    (TEXTID FOR A IN 
     (Column1 , Column2, Column3) 
)AS unpvt