我有一个应用程序,它使用SQL2008 SMO获取所有数据库的SpaceAvailable属性,但它经常会被其他进程阻塞很长时间。我已经注意到,我可以运行它在SSMS中生成的查询,而不会出现读取未提交隔离的问题。
那么,是否存在一种强制SQL使用读未提交隔离的方法?
发布于 2016-09-16 18:21:41
很抱歉对这件事的答复太迟了。我想我会发这个,以防将来有人需要帮助。
您可以在创建服务器实例时设置指定隔离级别。
确保您有以下参考资料:
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.ConnectionInfo; ,然后在创建连接时设置隔离级别。
Server theSQLServer = new Server(@"cb-z420vmsasq1\sql12");
theSQLServer.ConnectionContext.SqlConnectionObject.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted);您可能需要为不同的事务更改此选项。
发布于 2022-05-10 13:47:23
有关较新的SMO版本,请参见https://guibubbles.wordpress.com/2017/06/05/ssms-and-smo-query-isolation/。
它必须设置在运行应用程序的主机上,而不是应用程序本身。
发布于 2013-09-27 06:12:45
是的,您可以在查询顶部使用SET事务隔离级别读取未提交内容。此外,还可以根据需要更改隔离级别。搜索msdn.microsoft.com以获得隔离级别。
https://stackoverflow.com/questions/19041738
复制相似问题