新手刚接触SQLServer问一下,下列代码中在多用户情况下在Update和Insert之间会不会产生冲突(新手不知道怎么说,就是打麻将中截和的意思),另外不知道SQL的运行机理,感觉这段代码效率不是太高, 高手给指点一下,多谢了.Create Procedure InsA
@CName nvarchar(10),
@Priority int,
@AutoID int OutPut
As
DECLARE @Rows int
Set @Rows = @@ROWCOUNT;
IF @Priority = 0 OR @Priority > @Rows
Set @Priority = @Rows;
UPDATE tblA Set Priority = Priority + 1 Where Priority >= @Priority;
INSERT INTO tblA([CName],[Priority]) VALUES (@CName,@Priority);
SET @AutoID = @@IDENTITY
@CName nvarchar(10),
@Priority int,
@AutoID int OutPut
As
DECLARE @Rows int
Set @Rows = @@ROWCOUNT;
IF @Priority = 0 OR @Priority > @Rows
Set @Priority = @Rows;
UPDATE tblA Set Priority = Priority + 1 Where Priority >= @Priority;
INSERT INTO tblA([CName],[Priority]) VALUES (@CName,@Priority);
SET @AutoID = @@IDENTITY
解决方案 »
- sql server中自定义函数返回table,函数体中能够用if语句吗?
- 求2条关于时间判断取值的语句
- 寻求一条语句
- 新建个数据库维护计划,因为不太懂所以在这里问题大家,我的设置是否有问题
- 一个两表l连接的问题 求解
- SQL Server 2005 Express 的MSM (Merge Module)在哪能找到?多谢了。
- 有关sql server存储过程的问题。
- 一个智力测试(One intelligence test),欢迎讨论
- SQL Server 2000与2005是否可以同时安装?
- 谁知道erwin4.0的下载地址吗?
- 一个头痛的排序~大侠指点~
- 帮我改写一下delete触发器代码,谢谢。
他们执行时,都没真正的改变表,到结束时,才会真正的。commit。