【问题标题】:How programmatically enable READ COMMITTED SNAPSHOT in SQL Server?如何以编程方式在 SQL Server 中启用 READ COMMITTED SNAPSHOT?
【发布时间】:2010-09-20 17:21:36
【问题描述】:

我需要在 SQL Server 中以编程方式启用 READ COMMITTED SNAPSHOT。我该怎么做?

【问题讨论】:

    标签: sql-server transactions isolation-level read-committed-snapshot


    【解决方案1】:

    我建议先切换到single-user 模式。这样可以确保您是唯一的联系。否则,查询可能会被暂停。

    发件人:http://msdn.microsoft.com/en-us/library/ms175095.aspx

    当设置 READ_COMMITTED_SNAPSHOT 选项,仅限 执行 ALTER 的连接 DATABASE 命令允许在 数据库。不得有其他开放 数据库中的连接直到 ALTER 数据库已完成。

    所以,使用这条 SQL:

    ALTER DATABASE <dbname> SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    ALTER DATABASE <dbname> SET READ_COMMITTED_SNAPSHOT ON;
    ALTER DATABASE <dbname> SET MULTI_USER;
    

    【讨论】:

    • 这是一个可怕的救生员。谢谢。
    【解决方案2】:
    ALTER DATABASE [dbname] SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK AFTER 20 SECONDS 
    

    【讨论】:

    • @João--这是干什么用的?是必需的吗? WITH ROLLBACK AFTER 20 SECONDS
    • 根据 MSDN:指定当数据库从一种状态转换到另一种状态时何时回滚不完整的事务。如果终止子句被省略,如果数据库上有任何锁,ALTER DATABASE 语句将无限期等待。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多