2016-09-04 5 views
0

をテーブルを更新し、私はタイムスタンプ列を持つテーブルを持っていると私はそれから行をこのように選択します。同時にサービスでT-SQLを挿入し、そこから選択する際

Select top(@count) * from [table] 
Into #Increment 
where [Timestamp] > @timestamp 
order by [Timestamp] 

Select max(Timestamp) from #Increment 

Select * from #Increment 

を挿入して更新し、[テーブル]。上記の選択クエリを使用して[テーブル]から選択すると、いくつかの行が見つからないことがあります。私はそれについて何の理由も見ません。どうすればこの問題を取り除くことができますか?

ありがとうございました!

+0

「**タイムスタンプ」列は何ですか? –

+0

私が正しく理解していれば、一時テーブルがあり、元のソーステーブルへの変更がその中で表されていないのはなぜですか? –

+0

marc_s、timestampデータ型(rowversion) –

答えて

0

TOPを別の行に戻すたびに行が返される順序はありません。順序を保持するには、「order by timestamp DESC」句を追加します。

+0

ありがとう、私はそれをクエリに追加するのを忘れました。私は質問を更新する、申し訳ありません! –

+0

実際には、行が変更されるたびにrowversion列が更新されるため、タイムスタンプASCによる順序は意味をなさない。 –

+0

descで順序を追加すると、最新の行のうちの一番上の行を選択しますが、古い行から新しい行までを選択します。とにかく、それはなぜ理にかなっていないのですか?この状況で、昇順と降順の違いを説明できますか? –

関連する問題