ドキュメントライブラリにドキュメントが2000件以上ある時に、SPWeb.GetSiteData(SPSiteDataQuery)メソッドを実行しました。GetSiteData()は複数のリストから同時に条件を満たすアイテムのデータを取得できるメソッドです。
SqlExceptionが起きました。
System.Data.SqlClient.SqlException: 着信の表形式のデータ ストリーム (TDS) リモート プロシージャ コール (RPC) プロトコル ストリームが不適切です。この RPC 要求に指定されたパラメータが多すぎます。最大数は 2100 です。
1900件ぐらいだと問題なかったのに・・・orz
結局、GetSiteData()はあきらめて、リスト個別にSPList.GetItems(SPQuery)メソッドを使うことにしました。
SPWeb.GetSiteData(SPSiteDataQuery)使えないじゃん!
以下2009/2/16追記:
SPList.GetItems(SPQuery)メソッドでもマッチするアイテム数が約2100件越えると同様なエラーになります。
通常のWeb画面でもアイテム数が約2100件超えると
<!-- #RENDER FAILED -->
と表示されます。。。(次のエントリに書く予定)