none
sqlserver在线添加新列的时候是否会锁住整个表 RRS feed

答案

  • 直观感觉是是的。因为添加新列影响所有行数据。为什么不用profiler自己测试一下呢?


    Please click the Mark as Answer button if a post solves your problem!


    • 已编辑 Michael CS 2012年11月13日 7:16
    • 已标记为答案 znscott1 2012年11月13日 7:25
    2012年11月13日 7:15
  • 我记得有个scheme的锁。其实你应该这样考虑,假如添加新列时不对整个表加锁会怎么样?

    比如,你正在查询整个表,那个表有3列,查了一半的记录,然后突然改scheme,增加1列。

    这个出来的结果集有可能前一半的结果集为3列,而后一半的结果集是4列,这是你想要的结果吗?



    Please click the Mark as Answer button if a post solves your problem!

    • 已编辑 Michael CS 2012年11月13日 7:59
    • 已标记为答案 znscott1 2012年11月13日 10:05
    2012年11月13日 7:38

全部回复

  • 直观感觉是是的。因为添加新列影响所有行数据。为什么不用profiler自己测试一下呢?


    Please click the Mark as Answer button if a post solves your problem!


    • 已编辑 Michael CS 2012年11月13日 7:16
    • 已标记为答案 znscott1 2012年11月13日 7:25
    2012年11月13日 7:15
  • 我记得有个scheme的锁。其实你应该这样考虑,假如添加新列时不对整个表加锁会怎么样?

    比如,你正在查询整个表,那个表有3列,查了一半的记录,然后突然改scheme,增加1列。

    这个出来的结果集有可能前一半的结果集为3列,而后一半的结果集是4列,这是你想要的结果吗?



    Please click the Mark as Answer button if a post solves your problem!

    • 已编辑 Michael CS 2012年11月13日 7:59
    • 已标记为答案 znscott1 2012年11月13日 10:05
    2012年11月13日 7:38