数据库的琐是数据库自动加的还是程序员加的?给说说各种锁的锁定范围
1.能不能防止同一条纪录被同时读取,怎么作?
(防止医院处方号在不同的工作台上产生相同的几个)
2.为了防止数据库中插入已有的纪录 在使用(exists)判断后得知不存在,
在插入数据之前怎样防止别人插入相同纪录
(防止字典表中的纪录在多用户操作中插入相同的纪录)
3.1)单个sql语句的锁定范围是什么
2)begin tran
select * from tablename
end tran
的锁定范围是什么
3)事务的锁定范围是什么
总的来说就是怎样处理并发性的问题,最好能给点例子,谢谢,一定给足分,决不食言
我的QQ:29330600
---------------------------------------------------------------
0、数据库的锁是自动加的,大部分不需要程序员做什么!
1、一般不要防止同一条纪录被同时读取,而是防止写同样的数据,如果一定要防止同一条纪录被同时读取,可以在select 语句加with XLOCK,但是影响性能。
2.这个防止做好用主键。
3.1)单个sql语句要看语句的内容
2)在运行过程中是对表加表级共享锁。
3)具体情况具体分析,基本上都是不一样的。
4、多看看帮助!
---------------------------------------------------------------
进行增加、删除、修改操作时,在程序或者你的存储过程中添加事务处理,在出现并发的情况下采用回滚机制即可解决你的全部问题,详细使用方法你可以查阅SQL Server的联机手册。
---------------------------------------------------------------
如果你的系统并发性较高,你可以禁止页级锁
下面的示例禁用 Customers 表的 City 索引的页级锁。
USE Northwind
GO
EXEC sp_indexoption 'Customers.City',
'disallowpagelocks',
TRUE