私のテーブルに列があります。たとえば、updateStamp
です。私は行の更新時に新しい連続番号でそのフィールドを更新するアプローチを得たいと思います。SQL Server - 更新時に一意のシーケンシャル番号を生成する方法
データベースには大量のトラフィックがありますが、ほとんどの場合は読み取りますが、複数の同時更新もバッチで発生する可能性があります。したがって、ソリューションは最小のロックを引き起こすはずです。
この要件の理由は、クライアントがテーブル転送を繰り返し実行する必要があり、行が更新されている場合は、結果セットに再び表示されるはずです。
ので、クエリは、複数の更新が同時に起こる可能性があるため、残念ながらタイムスタンプはここで働いていない
SELECT *
FROM mytable
WHERE updateStamp > @lastReturnedUpdateStamp
ORDER BY updateStamp
ようなものです。
何SQL Serverのバージョンはありますか? SQL Server 2008の場合、「変更の追跡」は、必要な処理を行い、「タイムスタンプ」とトランザクションのコミット時間に関する微妙な問題を回避します。 –
2008 R2、私は使用しています。提案ありがとう!私はそのような特徴を知らなかった。これは私の要求には過剰ですが。 – user431529