SQL Server 2005 での ORDER BY を使用しない ROW_NUMBER()
SQL Server 2005 では、ROW_NUMBER() 関数を使用して結果セット内の各行の一意の連続番号。ただし、それ以降のバージョンの対応するものとは異なり、SQL Server 2005 の ROW_NUMBER() には明示的な ORDER BY 句が必要です。この制限は、データの元の順序を変更せずに連続番号を生成しようとする場合に問題を引き起こします。
解決策:
この制限を回避するには、次の指定を避けることができます。次のクエリを使用した明示的な順序付け構文:
INSERT INTO TargetTable (ID, FIELD) SELECT Row_Number() OVER (ORDER BY (SELECT 1)) + Coalesce( (SELECT Max(ID) FROM TargetTable WITH (TABLOCKX, HOLDLOCK)), 0 ), FieldValue FROM SourceTable WHERE {somecondition};
説明:
考慮事項:
以上がSQL Server 2005 で ORDER BY を使用せずに ROW_NUMBER() を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。