我有一个小的一行更改(修复字符串中的打字错误)到我想要尽快部署到我们的生产sql Server 2005服务器的存储过程.
我担心的是,如果在确切的时间运行alter语句来更新我的存储过程,会发生什么事情在同一时间调用该存储过程?
它是否与以前的存储过程副本一起运行,还是会导致一些损坏或错误?
考虑到sql Server的ACID性质,我期望它是安全的.
在同一时间运行的机会,特别是从SP相当小的时候,这个机会非常低,但我只是宁可确定,我也对这个答案感兴趣,只是为了教育目的.
可以说,ServerFault将是一个更好的地方,如果它被错误的话,抱歉.
谢谢.
解决方法
对于过程使用ALTER时,将设置模式修改锁. SP仍然存在,但客户端将不得不等待ALTER被执行. 这同样适用于ALTER,它将等到客户端不使用SP.