SQLServerで排他ロックにブロックされずにデータを参照するには、
READ COMMITTED SNAPSHOTを設定すると楽であります。
以下、設定方法。
1.現在の設定を確認
dbcc useroptions;
以下のようになってるかと思います。
2.READ_COMMITTED_SNAPSHOT をONにする
ALTER DATABASE 'DB名'
SET READ_COMMITTED_SNAPSHOT ON;
'強制的に実行する時以下のオプションを付ける'
WITH ROLLBACK IMMEDIATE;
3.再度設定を確認
dbcc useroptions;
以下のようになればOKです。
参考及び詳細: SQL Server 2005 Tips and Tips