我是否可以强制 SQL SMO 使用读取未提交的隔离
本文关键字:读取 提交 隔离 SMO 是否 SQL | 更新日期: 2023-09-27 18:32:55
我有一个应用程序SQL2008它使用SMO来获取所有数据库的SpaceAvailable属性,但它经常被其他进程长时间阻塞。我注意到我可以在 SSMS 中运行它生成的查询,在读取未提交的隔离中没有问题。
那么,是否存在强制 SQL SMO 使用读取未提交隔离的方法?
很抱歉回复晚了。我想我会发布这个以防将来有人需要帮助。
您可以在创建服务器实例时设置指定隔离级别。
确保您有以下参考资料:
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.ConnectionInfo;
然后在创建连接时设置隔离级别
Server theSQLServer = new Server(@"cb-z420vmsasq1'sql12");
theSQLServer.ConnectionContext.SqlConnectionObject.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted);
您可能需要为不同的交易更改此设置。
有关较新的 SMO 版本,请参阅 https://guibubbles.wordpress.com/2017/06/05/ssms-and-smo-query-isolation/
它必须在运行应用程序的主机上设置,而不是在应用程序本身中设置。
是您可以使用在查询顶部设置事务隔离级别读取未提交。您还可以根据需要更改隔离级别。在 msdn.microsoft.com 中搜索隔离级别。