Sql server 2008 将新外键插入到新列中

Sql server 2008 将新外键插入到新列中,sql-server-2008,sql-update,alter-table,Sql Server 2008,Sql Update,Alter Table,我刚刚向表A添加了三个新列,现在需要用表文本中的主键填充这些列。对于每个新单元格,我需要创建一个新的文本记录。创建新记录并将其主键存储在具有新列的表中每个新字段的最佳方法是什么 例如,如果表A有10条记录,我需要创建30条10*3的新文本记录,并将它们的ID插入表A,以便30个新单元格中的每个单元格都有一个唯一的文本ID CREATE TABLE A ( ID INT IDENTITY( 1,1 ) NOT NULL PRIMARY KEY CLUSTERED , Column1

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

例如,如果表A有10条记录,我需要创建30条10*3的新文本记录,并将它们的ID插入表A,以便30个新单元格中的每个单元格都有一个唯一的文本ID

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