gpt4 book ai didi

SQL Server : Snapshot transaction problem with synonyms in Express Edition

转载 作者:行者123 更新时间:2023-12-03 00:56:04 26 4
gpt4 key购买 nike

我们有 2 个数据库,例如 DB1 和 DB2。
DB1 包含所有还访问 DB2 中数据的存储过程。
DB1 使用同义词来访问 DB2 中的表。
(我们的情况需要使用同义词)

在 SQL Server 2005 Developer Edition 的所有情况下,这都可以完美地工作。

但是在 Express Edition 中,当我们执行以下操作时会出现异常:
1 重新启动SQL Server
2 在 DB1 中执行以下代码:

set transaction isolation level snapshot
begin transaction
declare @sQuery varchar(max)
set @sQuery = 'Select * from synToSomeTableInDB2'
exec (@sQuery)
commit transaction

这将导致以下错误:

Snapshot isolation transaction failed in database '...' because the database was not recovered when the current transaction was started. Retry the transaction after the database has recovered.

相同的选择查询在没有 EXEC 的情况下使用或在 Developer Edition 上运行时可以很好地传递。
第 1 步中重新启动服务器非常重要,因为一旦连接到 DB2,代码在 SQL Server Express Edition 上也可以正常运行。

有人知道这是什么吗?我们需要能够使用 EXEC 进行一些动态查询。我们已经查过 MSDN,搜索过 Google,...非常感谢任何帮助。

--- 编辑:2009 年 3 月 10 日
正如下面与 Ed Harper 讨论的那样,我已为此提交了一份错误报告。
请参阅https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=422150

最佳答案

通过Microsoft Connect发现,问题在于默认情况下,在 SQL Server Express Edition 上,AUTO_CLOSE 选项设置为 true
将此选项更改为 false 可以解决该问题。

关于SQL Server : Snapshot transaction problem with synonyms in Express Edition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/614178/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com