2

我有一个使用 SQL2008 SMO 来获取所有数据库的 SpaceAvailable 属性的应用程序,但它经常被其他进程长时间阻塞。我注意到我可以运行它在 SSMS 中生成的查询,而在 READ UNCOMMITTED 隔离中没有问题。

那么,是否存在强制 SQL SMO 使用未提交读隔离的方法?

4

2 回答 2

2

抱歉,回复晚了。我想我会发布这个,以防将来有人需要帮助。

您可以在创建服务器实例时设置指定隔离级别。

确保您有以下参考资料:

using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.ConnectionInfo; 

然后在创建连接的时候设置隔离级别

Server theSQLServer = new Server(@"cb-z420vmsasq1\sql12");
        theSQLServer.ConnectionContext.SqlConnectionObject.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted);

您可能需要针对不同的交易进行更改。

于 2016-09-16T18:21:41.390 回答
0

是的,您可以在查询顶部使用 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED。您也可以根据需要更改隔离级别。在 msdn.microsoft.com 中搜索隔离级别。

于 2013-09-27T06:12:45.980 回答