3

抛出以下异常:

错误消息: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 语句?

4

2 回答 2

6

使用Server.KillDatabase(string database)方法为您关闭所有打开的连接。

于 2008-11-26T01:48:28.897 回答
4

作为一种猜测,我想知道您的连接池是否对您不利 - 即您之前已经在 a 上执行了一些命令SqlConnection,现在被保留以供重复使用。您可以尝试禁用池?(连接字符串中的 pooling=false,IIRC)。

另外-您是否小心关闭了所有命令/连接/阅读器等?理想情况下通过using? 作为最后的手段,你可以尝试使用 T-SQL 来杀死你机器上的所有其他 spid - hacky,但它可能会起作用。

于 2008-11-24T20:47:50.283 回答