首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQL Server事务和SELECT语句

SQL Server事务和SELECT语句
EN

Stack Overflow用户
提问于 2012-03-22 16:07:29
回答 1查看 21.9K关注 0票数 19

我经常看到很多人在事务中使用SELECT语句。我经常只在事务中使用insert/update/delete。我就是不明白把SELECT语句放在事务中有什么用。

我得到了一个答案,事务内的SELECT可以看到该事务中其他以前的Insert/Update/Delete语句所做的更改,而事务外的SELECT语句则不能。

上面的陈述是真的还是假的?

这是人们将SELECT语句放在事务中的唯一原因吗?如果可能,请详细讨论所有原因。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-22 18:01:56

试着这样做,你就会明白:

在SSMS上打开两个新查询(从现在起分别称为A和B),并在A上创建一个简单的表,如下所示:

代码语言:javascript
复制
create table transTest(id int)
insert into transTest values(1)

现在,执行以下操作:

在这两个文件中执行select * from transTest。您将看到值1

在运行中:

代码语言:javascript
复制
set transaction isolation level read committed

在B运行时:

代码语言:javascript
复制
begin transaction
insert into transTest values(2)

在运行中:

select * from transTest

您将看到查询不会完成,因为它被A上的事务锁定

在B运行时:

代码语言:javascript
复制
commit transaction

返回到A,您将看到查询已完成

在A上使用set transaction isolation level read uncommitted重复测试,您将看到查询不会被事务锁定

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9818465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档