Dropping SQL Server database through C#

后端 未结 7 1891
误落风尘
误落风尘 2020-12-29 07:24

I am using this code to delete a database through C#

Int32 result = 0;

try
{
        String Connectionstring = CCMMUtility.CreateConnectionString(false, txt         


        
7条回答
  •  小鲜肉
    小鲜肉 (楼主)
    2020-12-29 08:14

    Connection pooling at a guess, use sql server's activity monitor to make sure though.

    Pooling keeps connections to the database alive in a cache, then when you create a new one, if there's one in the cache it hands it back instead of instantiating a new one. They hang around for a default time, (2 minutes I think) if they don't get re-used in that time, then they killed off.

    So as a first go connect straight to master, instead of using change database, as I suspect change database will simply swap connections in the pool.

    Add a check routine for database in use (use a connection to master to do it!). You can force the database to be dropped anyway by first executing

    ALTER DATABASE [MyDatabase] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
    

    again from the connection to master!

    However everybody else using the db, will no longer like you at all...

提交回复
热议问题