【问题标题】:SCOPE OF SET TRANSACTION ISOLATION LEVEL, How ensure it only set on current table or DatabaseSET TRANSACTION ISOLATION LEVEL 的范围,如何确保仅在当前表或数据库上设置
【发布时间】:2021-06-25 10:23:33
【问题描述】:

我目前正在使用 pyobdc 连接到 MS SQL Server 2016。 因此,查询是如何使用“SET TRANSACTION ISOLATION LEVEL”,它只影响我正在运行的当前进程(将其设置为连接属性或将其包含在语句中)。 我担心的是这样做是否会改变可能正在运行和使用数据库的其他连接/进程的提交锁定行为。 所以我正在寻找的断言是,在我的脚本中设置 TRANSACTION ISOLATION LEVEL 只会影响那些脚本,而不会影响与 DB 通信的任何其他进程。

【问题讨论】:

  • 如果这个功能影响所有进程,它可能有什么用处?作为documented,它会影响发出它的连接。

标签: sql sql-server pyodbc


【解决方案1】:

基本上回答你的问题是肯定的,事务隔离级别的范围是连接级别,您可以控制的所有其他 set 选项(例如 nocount, quoted_identifier, ansi_nulls 等)也是如此。

如果您使用 SSMS,则默认配置设置确定新连接使用的内容,然后可以通过发出更多 set 命令来覆盖它 - 所有这些都影响特定连接。 p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多