最初にあなたの質問にお答えします。
ビュー内のテーブルではなく、外部からのビューに NOLOCK ヒントを設定することをお勧めします。
例えば
select * from vwTest with (nolock)
また
set transaction isolation level read uncommitted
select * from vwTest
作成者としてこのように行うことで、SQL の経験が豊富であるかどうかにかかわらず、より幅広いユーザー ベースに対応できます。ビューに NOLOCK ヒントをカプセル化しないことで、他の開発者が安全かつ効率的な方法でデータを取得する方法を真剣に考えるようになります。
今NOLOCKの詳細情報。基礎となるデータが変更されていないことを 100% 確信している場合、これは優れたトリックです。良い例は、ETL システムがその日のデータの読み込みを終了したときです。また、レポートの実行間でデータが移動しないことが確実な読み取り専用のレポート システムでも便利です。
それ以外の場合は、システムで使用する推奨ヒントではありません。その意味を本当に理解していなければ、それは良いことよりも害を及ぼします。
NOLOCK が引き起こす可能性のある損害については、次のリンクを参照してください:
NOLOCK ヒントが使用されている場合、以前にコミットされた行が失われる可能性があります