我有一个如下所示的查询,它会根据参数自动生成一个临时表。因此,该表的列数可以变化。现在,我需要在此表中添加一个自动增量id列。我该怎么做?
SELECT @SourceFields INTO ##StoreSourceInfo FROM testdb.dbo.@SourceTable
注意:1)源场数&使用参数@SourceFields & @SourceTable
传递的表名称。
2)因此,列数可以在## StoreSourceInfo表中变化。
当前结果:
select * from ##StoreSourceInfo
仅显示可用列。
预期结果
select * from ##StoreSourceInfo
查询将显示其他自动增量ID列&临时表中可用的所有其余列。
答案 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
函数...