安全地有许多用户同时在Sql Server中执行存储过程

时间:2017-04-24 12:15:25

标签: sql-server reporting-services

我使用SSRS构建了一个工作清单,多个用户将同时使用该报告。我在存储过程中有多个UPDATE / INSERT语句,它们使用相应的参数来执行。这是一个快速的查询,但我担心的是,如果2个用户同时在不同的记录上尝试相同的操作会怎样。我已经阅读了很多关于锁定和表格提示的内容,并且没有太多运气找到一个可靠的答案。我不想锁定用户,但是或多或少地相应地排队交易。

IF @ID = 0 
BEGIN

UPDATE TABLEA SET MYVALUE = 1 , USER = @USERID, RECDATE = GETDATE();

END

IF @ID = 1
BEGIN

INSERT INTO TABLE B 
SELECT @ACCOUNTID , @SOMEVALUE , @USERID, GETDATE();

END

所以这段代码是关于正在发生的事情的简化版本。制作它的最佳过程是什么,如果proc正在执行,而第二个用户将其关闭,它会将执行排队直到第一个完成?这是在SSMS 2012中。谢谢。

0 个答案:

没有答案