Tsql 通过在T-SQL中编写脚本,在所有存储过程中的所有Select语句之后添加(Nolock)

Tsql 通过在T-SQL中编写脚本,在所有存储过程中的所有Select语句之后添加(Nolock),tsql,Tsql,我在数据库中有许多存储过程,如果存储过程中有select语句,我想通过编写脚本在所有这些select语句之后添加(Nolock) 我可以通过使用cursor和sys表获得所有存储过程,但我不知道如何准确地找到selectstatement并在它们之后添加nolock 我需要你的好主意 提前感谢,嗯。。。我不会那样做;到处添加NOLOCK是一种SQL反模式 还有其他方法可以达到同样的效果: 调整调用数据库的应用程序的事务隔离级别,并将其设置为readuncommitted,其效果与将NOLOCK添

我在数据库中有许多存储过程,如果存储过程中有select语句,我想通过编写脚本在所有这些select语句之后添加(Nolock)

我可以通过使用cursor和sys表获得所有存储过程,但我不知道如何准确地找到selectstatement并在它们之后添加nolock

我需要你的好主意


提前感谢,

嗯。。。我不会那样做;到处添加
NOLOCK
是一种SQL反模式

还有其他方法可以达到同样的效果:

  • 调整调用数据库的应用程序的事务隔离级别,并将其设置为
    readuncommitted
    ,其效果与将
    NOLOCK
    添加到所有
    SELECT
    语句中相同。。。见:

  • 或者对整个数据库实施
    读取提交的快照
    模式:

  • 事实上,我们自己的杰夫·阿特伍德(Jeff Atwood)写了一篇关于你可能在这里试图解决的同一个问题的文章:


    如果可能的话,我会选择选项2,但这两个选项中的任何一个都可能会减少前期工作和后续工作。

    嗯。。。我不会那样做;到处添加
    NOLOCK
    是一种SQL反模式

    还有其他方法可以达到同样的效果:

  • 调整调用数据库的应用程序的事务隔离级别,并将其设置为
    readuncommitted
    ,其效果与将
    NOLOCK
    添加到所有
    SELECT
    语句中相同。。。见:

  • 或者对整个数据库实施
    读取提交的快照
    模式:

  • 事实上,我们自己的杰夫·阿特伍德(Jeff Atwood)写了一篇关于你可能在这里试图解决的同一个问题的文章:


    如果可能的话,我会选择选项2,但这两个选项中的任何一个都可能会减少前期工作和后续工作。

    NOLOCK
    确实是只在特殊情况下使用的东西。
    NOLOCK
    确实是只在特殊情况下使用的东西。