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

次のクエリを試して、例外の結果を取得し、追加の自動インクリメント列を追加する必要があります。

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

機能を適用する手段IDENTITY...

于 2012-11-21T05:08:41.417 に答える
3

アイデンティティ関数を使用します。例については、リンクを参照してください。 http://msdn.microsoft.com/en-us/library/ms189838.aspx

于 2012-11-21T04:48:52.467 に答える