2015-11-03 76 views
0

我有一個存儲過程,顯示在加row_number錯誤:添加ROW_NUMBER(),以表變量SQL Server 2012中

alter proc xmliterate 
    @xmlstring xml 
as 
begin 
    declare @tablexml table(ids int, 
          names varchar(50), 
          parent varchar(50), 
          nodes varchar(50)) 

    insert into @tablexml (ids, names, parent, nodes) 
     select 
      ids = row_number() over (order by names),---error Invalid column name 'names'. 
      PARENT = B.value('(.)[1]','varchar(50)'), 
      names = b.value('local-name(.)','varchar(50)'), 
      nodes = b.value('local-name(..)','varchar(50)') 
     from 
      @xmlstring.nodes('SampleXML/*/*')A(B) 

    select * from @tablexml 
end 

如果這是不可能的如何添加row_number到結果表變量?

回答

2

您的名字列是別名列。你應該改變你的代碼,從:row_number() over (order by names)row_number() over (order by b.value('local-name(.)','varchar(50)'))