抛出以下异常:
错误消息:Microsoft.SqlServer.Management.Smo.FailedOperationException:数据库'4d982a46-58cb-4ddb-8999-28bd5bb900c7'的删除失败。 ---> Microsoft.SqlServer.Management.Common.ExecutionFailureException:执行Transact-SQL语句或批处理时发生异常。 ---> System.Data.SqlClient.SqlException:无法删除数据库“4d982a46-58cb-4ddb-8999-28bd5bb900c7”,因为它当前正在使用中。
知道是什么导致了这个吗?
是否可以调用SMO函数来完成任何正在运行的Transact-SQL语句?
答案 0 :(得分:6)
使用Server.KillDatabase(string database)方法关闭所有打开的连接。
答案 1 :(得分:4)
作为猜测,我想知道你的连接池是否对你不利 - 即你之前在SqlConnection
上执行了一些命令,现在它们被重新使用。您可以尝试禁用池化? (连接字符串中的pooling = false,IIRC)。
另外 - 你是否小心关闭所有命令/连接/读者等?理想情况下通过using
?作为最后的手段,你可以尝试使用T-SQL来杀死你机器上的所有其他spid - hacky,但它可能会有效。