我有一组访问同一SQL数据库的程序(考虑父进程和子进程)。它在程序的过程中附加和分离。只有当我尝试在两个进程都访问它时将其分离时,我才会遇到麻烦。连接都已关闭,但是如果我尝试执行sp_detach存储过程,则会收到一条错误消息,指出它正在使用且无法分离。我需要解决多进程访问的问题吗?
答案 0 :(得分:0)
多进程访问没有具体说明所有连接都已关闭。在你的情况下,我怀疑其中一个连接没有真正关闭,你只是认为它是。
在调用sp_detach之前,请运行以下代码:
ALTER DATABASE [YourDbName]
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
我始终认为这是防御性编码精神的自然程序的最佳实践。 (并不是说我会在自动化流程最佳实践中考虑数据库分离)