BY ORDERせずに私はSQL Server 2005のROW_NUMBER()
DECLARE @IDOffset int;
SELECT @IDOffset = MAX(ISNULL(ID,0)) FROM TargetTable
INSERT INTO TargetTable(ID, FIELD)
SELECT [Increment] + @IDOffset ,FeildValue
FROM SourceTable
WHERE [somecondition]
TargetTable.ID私はオートへの道を見つけなければならない理由は、ID列、ではありませんを使用して別のものに一つのテーブルから挿入しようとしています - それを自分で増やしてください。
私は、カーソルを使用することができ、またはID列とFieldValueフィールドを持つテーブル変数を作成し、それを移植してからinsert into...select
で使用することができますが、これはあまり効率的ではありません。 ROW_NUMBER関数を使ってインクリメントしてみましたが、実際にはSourceTableの正当なORDER BYフィールドがなく、SourceTableの元の順序を保持したいと考えています(可能な場合)。
誰もが何か示唆できますか?
ソーステーブルにクラスタ化インデックスとは何ですか?私はあなたが「SourceTableの元の順序」と言うとき、それがあなたが話しているものだと仮定していますか?それがヒープの場合、特別な順序はありません。 –