将新外键插入新列

时间:2011-12-15 00:58:07

标签: sql-server-2008 sql-update alter-table

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

例如,如果Table A有10条记录,我需要创建30(10 * 3)条新TEXT条记录并将其ID插入Table A,以便30个新单元格中的每一条有一个独特的TEXT ID

1 个答案:

答案 0 :(得分: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