8
Basit bir soru. SQL 2008'de saklı bir prosedürüm varsa (aşağıya bakınız) ilk iki ifade arasında bir yarış durumu riskini çalıştırır mıyım veya saklı yordam, işlemler gibi dokundukları şeylere bir kilit koyar mı?Saklanan prosedürler tabloları/satırları kilitler mi?
ALTER PROCEDURE [dbo].[usp_SetAssignedTo]
-- Add the parameters for the stored procedure here
@Server varchar(50),
@User varchar(50),
@UserPool varchar(50)
AS
BEGIN
SET NOCOUNT ON;
Declare @ServerUser varchar(50)
-- Find a Free record
SELECT top 1 @ServerUser = UserName
from ServerLoginUsers
where AssignedTo is null and [TsServer] = @Server
--Set the free record to the user
Update ServerLoginUsers
set AssignedTo = @User, AssignedToDate = getdate(), SourcePool = @UserPool
where [TsServer] = @Server and UserName = @ServerUser
--report record back if it was updated. Null if it was not available.
select *
from ServerLoginUsers
where [TsServer] = @Server
and UserName = @ServerUser
and AssignedTo = @User
END
çıkış deyimi ben ilk örneğini kullanılan doğru sözdizimi –
için sette sonra koymak gerekiyor ama hatayı aldım '' READPAST kilidini yalnızca OKUMA KOMİTE veya REPEATABLE READ yalıtım seviyelerinde belirtebilirsiniz. –
Ah Tamam, bırakın HOLDLOCK sonra – gbn