私たちの会社では、ビューとストアド プロシージャを使用する傾向があります。
私たちは最近、このNOLOCK
ステートメントを多くのビューに実装し始めました。
私が疑問に思っていNOLOCK
たのは、ビューに適用している場合、ストアドプロシージャに「滴り落ちる」ことです
と呼ばれるビューがviewPartyPackage
あり、ビューステートメントが...
SELECT
PartyPackageID, Name, Created, LastModified, Deleted
FROM
dbo.PartyPackage WITH (NOLOCK)
WHERE
(Deleted = 0)
また、ストアドプロシージャもありました:
ALTER proc [dbo].[partypackage_Select]
(@PartyPackageID bigint = null)
AS
SELECT *
FROM [viewPartyPackage] PartyPackage
WHERE (@PartyPackageID IS NULL OR @PartyPackageID = [PartyPackageID])
ストアド プロシージャから呼び出しているため、NOLOCK 機能が失われ、ストアド プロシージャにも (NOLOCK) を設定する必要がありますか? それとも、ビューにある NOLOCK が機能しますか?