sql里的事务语句 默认都有加数据锁的么?

如题,如果默认都没加锁,这样的话数据锁的基本是不是分为事务锁,表锁,和行锁呢,最好拿点代码解释下,谢谢。... 如题,如果默认都没加锁,这样的话 数据锁的基本是不是分为 事务锁,表锁,和行锁呢,最好拿点代码解释下,谢谢。 展开
 我来答
szm341
2013-07-26 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5176万
展开全部
就sqlserver数据库而言,每一条语句在默认事务级别下(可提交读级别)都是加锁的
如一条普通的查询,要加S锁(共享),一个更新要加U锁(更新)等等
你说的表锁、行锁只是锁的粗粒程度,如字面意思,行锁是锁住几行,表锁就是锁住整个表所在的全部数据页
追问
一般事务里是不是要加这个加上锁呢:SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED  这里面的意思好像不锁,如你所说的话,直接执行一些插入更新的操作都不用特意加加锁语句的吧,会自动锁住,防止高并发带来的数据读脏的吧。
追答
默认的是read commit级别,不需要设置,都说是默认的了
对,所有的语句都会加锁的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式