5

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

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

注意:1)使用参数的源字段数和表名@SourceFields & @SourceTable。2)因此,##StoreSourceInfo 表上的列数可以不同。

当前结果:

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

预期结果: select * from ##StoreSourceInfo查询将显示一个额外的自动增量 id 列和临时表中可用的所有其余列。

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

4

4 回答 4

10
SELECT
  IDENTITY(INT, 1, 1) AS id
INTO #Temptable
FROM User
于 2013-10-09T11:12:15.250 回答
5

您可以使用 row_number 函数

Select ROW_NUMBER() over (order by T.field1) rownum
, T.field1, T.field2 into #temp1 
from @Table T
于 2012-11-21T04:44:26.283 回答
3

使用身份功能。有关示例,请参见链接。 http://msdn.microsoft.com/en-us/library/ms189838.aspx

于 2012-11-21T04:48:52.467 回答
3

您必须尝试使用​​以下查询来获取例外结果以添加额外的自动增量列:

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

表示应用IDENTITY函数...

于 2012-11-21T05:08:41.417 回答