SQL - 如何在自动生成的临时表中添加自动增量ID

时间:2012-11-21 04:26:27

标签: sql sql-server

我有一个如下所示的查询,它会根据参数自动生成一个临时表。因此,该表的列数可以变化。现在,我需要在此表中添加一个自动增量id列。我该怎么做?

SELECT @SourceFields INTO ##StoreSourceInfo FROM testdb.dbo.@SourceTable

注意:1)源场数&使用参数@SourceFields & @SourceTable传递的表名称。       2)因此,列数可以在## StoreSourceInfo表中变化。

当前结果:

select * from ##StoreSourceInfo仅显示可用列。

预期结果 select * from ##StoreSourceInfo查询将显示其他自动增量ID列&临时表中可用的所有其余列。

希望你能得到我。提前谢谢。

4 个答案:

答案 0 :(得分:8)

SELECT
  IDENTITY(INT, 1, 1) AS id
INTO #Temptable
FROM User

答案 1 :(得分:4)

您可以使用row_number函数

Select ROW_NUMBER() over (order by T.field1) rownum
, T.field1, T.field2 into #temp1 
from @Table T

答案 2 :(得分:3)

使用身份功能。请参阅链接以获取示例。 http://msdn.microsoft.com/en-us/library/ms189838.aspx

答案 3 :(得分:1)

您必须尝试使用​​以下查询来获取预期结果以添加额外的auto_increment列:

SELECT 
    IDENTITY(INT, 1,1) AS Rank, 
    @SourceFields 
INTO 
    ##StoreSourceInfo 
FROM 
    testdb.dbo.@SourceTable

表示应用IDENTITY函数...