在我们的MS SQL Server 2008 R2上,意外地同一个存储过程一次运行两次。它们是从同一个SQL Server Management Studio客户端运行的,我试图取消它们。 45分钟后,这两个过程都没有取消。我在某处读到了这将有助于关闭SSMS中的查询窗口,所以我做了。但是,即使已经过了将近20个小时,存储过程应该写入的表仍然被锁定。我想有一个僵局。我在启动存储过程后点击取消秒。
存储过程正在读取的表未锁定。存储过程在CLR中。它从表中读取,操作数据然后使用SqlBulkCopy插入到其他三个表中。
可以非常轻松地重新创建SP写入的表中的数据。但是由于锁定,我既不能删除也不能截断它们。我也尝试过没有结果的KILL SPID。
我一直在考虑重新启动服务器,但我认为由于SQL Server数据完整性而无济于事。
我真的想要一些关于如何释放锁的输入。一些拥有大量用户的网站依赖于数据库服务器,因此非常感谢不需要重新启动的解决方案。