我有一个使用SQL2008 SMO的应用程序来获取所有数据库的SpaceAvailable属性,但它经常被其他进程长时间阻止。我已经注意到我可以运行它在SSMS中生成的查询,而不会出现READ UNCOMMITTED隔离问题。
那么,是否存在强制SQL SMO使用read uncommitted isolation?
的方法答案 0 :(得分:2)
很抱歉迟到的回复。我想发布这个以防将来需要帮助的人。
您可以在创建Server实例时设置指定隔离级别。
确保您拥有以下参考资料:
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.ConnectionInfo;
然后在创建连接时设置隔离级别
Server theSQLServer = new Server(@"cb-z420vmsasq1\sql12");
theSQLServer.ConnectionContext.SqlConnectionObject.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted);
您可能需要针对不同的交易进行更改。
答案 1 :(得分:0)
是 您可以使用 SET TRANSACTION ISOLATION LEVEL在您的查询顶部读取不正确的内容。 您也可以根据需要更改隔离级别。 在msdn.microsoft.com上搜索隔离级别。