Sql server 在不指定事务的情况下执行SQLCommand

Sql server 在不指定事务的情况下执行SQLCommand,sql-server,transactions,sqlcommand,Sql Server,Transactions,Sqlcommand,我们在应用程序中有一些数据列表,这些数据是通过对SQL Server数据库执行SELECT查询的SqlCommand获取的。我们没有显式地在SqlCommand上设置事务,而只是传递一个SqlConnection并运行它。在这种情况下,如果未指定任何事务,SQL Server将启动并使用默认隔离级别为ReadCommitted的默认事务?SQL Server可以在没有显式事务的情况下愉快地工作。但是是的,我相信它本质上是读提交的(当然,除非您向查询对象添加额外的提示,例如UPDLOCK/NOLO

我们在应用程序中有一些数据列表,这些数据是通过对SQL Server数据库执行
SELECT
查询的SqlCommand获取的。我们没有显式地在SqlCommand上设置事务,而只是传递一个SqlConnection并运行它。在这种情况下,如果未指定任何事务,SQL Server将启动并使用默认隔离级别为
ReadCommitted
的默认事务?

SQL Server可以在没有显式事务的情况下愉快地工作。但是是的,我相信它本质上是读提交的(当然,除非您向查询对象添加额外的提示,例如
UPDLOCK
/
NOLOCK
)。您可以通过以下方式对此进行调查:

DBCC USEROPTIONS
其中包括:


SQL为您的语句隐式创建一个事务,该事务在语句完成时提交。此事务的隔离级别将是当前隔离级别,默认为READ COMMITTED。某些语句覆盖当前隔离级别并强制执行读提交(例如RECEIVE)

如果SqlCommand执行批处理(更多语句),则访问表的每个语句都将创建自己的事务

默认值是通过更改上的设置IMPLICIT_事务来控制的


有关更多详细信息,请参阅。

可能我在这里遇到了相同的问题:
isolation level read committed