set autocommit =0//关闭自动提交
begin//开始事务
select * from order where id=989879 for update//查询信息
update order set name='names'//修改信息
commit//提交事务
执行select…for update时,一般的SELECT查询则不受影响。
Lock in share mode的是实现方式:
set autocommit =0//关闭自动提交
begin//开始事务
select * from order where id=989879 lock in share mode//锁定查询的字段
update order set name='names'//修改信息
commit//提交事务
取行的数据库行的主键字段的值,然后对数据执行更新 *** 作:update tabblename set xxx1 = 'aaaa',xxx2='bbbb' where id = 主键的值.
添加判断语句,判断有时,就修改一是多写几个更新语句,一次更新一个字段
二是把更新语句,拼接成string形式,最后一次执行.
或用 @@rowcount判断是否存在:
create procedure alStuentsInfor
@StuId char(10),
@StuImage IMAGE=null,
@StuName varchar(20)=null,
@StuSex char(5)=null, @StuAge smallint=null
AS
BEGIN
UPDATE dbo.Students
SET iStuImage = ISNULL(@StuImage,iStuImage),
vStuName = ISNULL(@StuName,vStuName),
cStuSex = ISNULL(@StuSex,cStuSex),
sStuAge = ISNULL(@StuAge,sStuAge)
WHERE cStudentsId = @StuId
IF @@ROWCOUNT>0
RETURN 0
ELSE
begin
PRINT'NO RECORDS FOUND!'
RETURN 1
END
END
GO
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)