将列动态添加到sql server中的临时表中

时间:2013-02-28 14:02:36

标签: sql sql-server-2008

我将数据从一个xml文件添加到一个临时表中..代码在下面..

SELECT * INTO #TempBusinessUnitFacility FROM OPENXML(@iBusinessUnitFacilityLinkTree, 'BusinessUnits/BusinessUnit', 1)  
    WITH (BU_Facility_LinkClientCode INT 'BU_Facility_LinkClientCode',BU_Code INT 'BU_Code',Facility_Code INT 'Facility_Code') 

假设我有近10行,我想做while循环并逐行将值从临时表插入到其他表中。问题是我没有标识列或行没有here.if我可以添加将no行作为标识列,然后我可以轻松地进行操作。我可以在此临时表中添加一列作为标识。

我可以创建一个临时表添加列并从xml插入值。但这不是我的方案。我的上述方案有任何选项。任何人都可以对其进行排序。

1 个答案:

答案 0 :(得分:2)

嗯,你可以这样做:

selet row_number() over (order by (select NULL)) as id,
      *
INTO #TempBusinessUnitFacility FROM OPENXML(@iBusinessUnitFacilityLinkTree, 'BusinessUnits/BusinessUnit', 1)  
WITH (BU_Facility_LinkClientCode INT 'BU_Facility_LinkClientCode',BU_Code INT 'BU_Code',Facility_Code INT 'Facility_Code') 

这使用row_number()来分配ID。