1

私はこの問題を数日間解決しようとしてきましたが、あまりうまくいきませんでした。ここcodeprojectの両方で、SQL Server 2000 のページングについて説明している多くのリソースを見つけました。

私が直面している問題は、主キーを構成する 3 つのキーを持つテーブルに何らかのページング メカニズムを実装しようとしていることです。オペレーター、CustomerIdentifier、DateDisconnected。

ヘルプ/ポインタをいただければ幸いです

4

1 に答える 1

1

SQL Server 2000 には便利なrow_number機能がないため、次のように、サブクエリを使用して行番号列を自動生成する必要があります。

select
    *
from
    (select
        *,
        (select count(*) from tblA where 
            operator < a.operator
            or (operator = a.operator
                and customeridentifier < a.customeridentifier)
            or (operator = a.operator
                and customeridentifier = a.customeridentifier
                and datedisconnected <= a.datedisconnected)) as rownum
     from
        tblA a) s
where
    s.rownum between 5 and 10
order by s.rownum

ただし、テーブル内の任意の列でこれらの行を並べ替えることができます。複合キーを使用する必要はありません。それはおそらくもっと速く走るでしょう!

さらに、複合キーは通常フラグです。これら 3 つの列に一意の制約を持つ代理キーを使用していない特別な理由はありますか?

于 2009-08-18T11:55:15.310 に答える