我有三個表和三個存儲過程分別插入/更新這些表中的記錄。第一個表格有一個主鍵列RecNo,它是自動生成的。設置存儲過程中的可序列化隔離級別
大約有1000個用戶同時從不同的地理位置在這些表中輸入記錄。我注意到,即使插入成功完成並且沒有生成警告,有時插入到第二個或第三個表中也會錯過。
我想知道自動生成的主鍵列如何處理併發問題。我是否需要在每個存儲過程的頂部將隔離級別設置爲SERIALIZABLE?
我正在使用默認隔離級別SQL Server 2008 R2 Express,即READ COMMITTED。
我的一個存儲過程是這樣的:
ALTER PROCEDURE [dbo].[pheSch_CreateOrUpdateTubewellDetails]
-- Add the parameters for the stored procedure here
@TwTaskFlag nvarchar(6),
@TwParameterID bigint,
@SerialNumber bigint,
@TotalNum int,
@TwType nvarchar(50),
@Depth nvarchar(60),
@Diameter nvarchar(60),
@WaterCapacity nvarchar(60),
@PS nvarchar(15),
@PSNum int,
@PSType nvarchar(60),
@Remarks nvarchar(80)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
BEGIN
UPDATE tw_details
SET
TotalNum = @TotalNum,
TwType = @TwType,
Depth = @Depth,
Diameter = @Diameter,
WaterCapacity = @WaterCapacity,
PS = @PS,
PSNum = @PSNum,
PSType = @PSType,
Remarks = @Remarks
WHERE twpid = @TwParameterID;
END
END
你的問題提到多個插入,但代碼只顯示一個更新.... – RickNZ 2011-12-29 14:56:03