2011-12-15 62 views
1

我刚刚添加了三个新列到Table A,我现在需要使用表TEXT中的主键填充。对于每个新单元,我需要创建一个新的TEXT记录。使用新列创建新记录并将其主键存储在表中的每个新字段的最佳方法是什么?将新外键插入新列

例如,如果Table A有10条记录,我需要创建30(10 * 3)新TEXT记录,并插入其ID添加到Table A使每个30个新细胞具有独特的TEXT 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