在存储过程中,我有以下内容:( server 2008 )
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRANSACTION getStuff
BEGIN TRY
/* some selects, updates, etc, etc. */
....
COMMIT TRANSACTION getStuff
END TRY
BEGIN CATCH
...
END CATCH
因为这是基于事务的,所以我认为其余的数据库连接不会受到SERIALIZABLE的影响。
是否需要隐式设置隔离级别以在
我有一些数据要插入2个数据库(1个MSSQL Server,2个POSTGRY)。如果在两个数据库中都插入了记录,则两个数据库都应该提交,否则都应该回滚。
有人能帮我在我的C#代码中设置哪个IsolationLevel吗?目前,我正在使用以下代码。
对于SQL数据库,
var sqlTransactionScope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = System.Transactions.IsolationLevel.Serializ
我正在讨论您是否还需要在tempdb本身上设置允许快照隔离,还是只需要在用户数据库上设置启动功能(除了引用此功能的代码之外)?
大多数文章和示例似乎只设置了用户数据库本身上的属性,并将tempdb保持不变。但是我找到了一个链接2005数据库的设计与优化,上面写着:
(您甚至可以在tempdb上这样做) alter database tempdb set allow_snapshot_isolation on
除了用户数据库之外,是否还需要将其设置在tempdb上,还是只设置用户数据库?
其主要目的是用于需要对快照进行隔离的应用程序。
我遵循了,它清楚地描述了如何使用助手应用程序创建数据库,然后将其作为内容加载到主应用程序中。如果数据库是只读的(这是我的数据库),本文将描述它如何不需要加载到隔离存储中。
但是,在执行此操作并对数据库执行只读查询(Where、Select等)之后,我将得到以下异常
数据库以只读连接打开。无法执行后初始化操作,如重建索引和升级公共跟踪。请用读写连接重新打开.
这意味着数据库总是需要写访问。那么,按照本文的建议,如何在只读模式下使用数据库呢?
以下是我正在运行的查询,
IQueryable dataQuery = null;
// This line inside a switch st