2012-11-05 69 views
1

我想删除sql server数据库。如果它未被使用,它将被删除。如果数据库正在使用中,发生异常,说can not delete database while it is in use。 我们可以使用选项Close existing connection从管理工作室删除使用数据库。 但我们如何使用C#代码来做到这一点?如何使用C#在“使用中”时删除SQl服务器数据库?

+0

这可能对你有用:http://stackoverflow.com/questions/1145892/how-to-force-a-sqlconnection-to-physically-close-while-using-connection-pooling? –

回答

2

一个MS SQL Server上的简单的方法来踢所有用户关闭是:

ALTER DATABASE [MyDB] SET Single_User WITH Rollback Immediate 
GO 

消防此查询通过您的代码,并继续: -

SOURCE:-

+0

“通过你的代码解决这个问题并继续:”是Pranav它为我工作......我太高兴了。感谢你的帮助 –

+0

@ KashifR-我很高兴帮助.. :) – Pranav

3
ALTER DATABASE AdventureWorks2012 
SET SINGLE_USER 
WITH ROLLBACK IMMEDIATE; 

DROP DATABASE AdventureWorks2012; 

制作通过编写上面的查询脚本文件。然后执行以下脚本文件:

string sqlConnectionString = "Data Source=(local);Initial Catalog=AdventureWorks;Integrated Security=True"; 
      FileInfo file = new FileInfo("C:\\myscript.sql"); 
      string script = file.OpenText().ReadToEnd(); 
      SqlConnection conn = new SqlConnection(sqlConnectionString); 
      Server server = new Server(new ServerConnection(conn)); 
      server.ConnectionContext.ExecuteNonQuery(script); 
+0

为什么你需要为此创建单独的.SQL,您可以通过在字符串本身中编写查询来执行它。:):P – Pranav

+0

有2个命令,Alter&drop。 – 2012-11-05 07:54:32

+0

Wajid Ali先生感谢Ur帮助,它解决了我的2天问题,对我来说工作得很好。再次感谢.......我只是试图设置数据库脱机,但它不工作..... “随着角色立刻回来”,它已经为你所建议的我工作了,再次感谢。 –

相关问题