问题描述
- C#代码实现删除数据库
-
C#代码方法1CreatDB-执行sql创建数据库,方法2CreatTable在该库中创建表,
方法3DeleteDB如果建表失败则删除数据库。但是删除数据库的时候提示数据库正在使用中无法删除。我要代码实现的方法,不要命令
解决方案
USE MASTER
GO
DECLARE @dbname SYSNAME
SET @dbname = 'databasename' --这个是要删除的数据库库名
DECLARE @s NVARCHAR(1000)
DECLARE tb CURSOR LOCAL
FOR
SELECT s = 'kill ' + CAST(spid AS VARCHAR)
FROM MASTER..sysprocesses
WHERE dbid = DB_ID(@dbname)
OPEN tb
FETCH NEXT FROM tb INTO @s
WHILE @@fetch_status = 0
BEGIN
EXEC (@s)
FETCH NEXT FROM tb INTO @s
END
CLOSE tb
DEALLOCATE tb
EXEC ('drop database [' + @dbname + ']')
这个方法我试过可以解决
解决方案二:
drop database 数据库名
解决方案三:
public void DropDatabase(string dbName)
{
using (var conn = new SqlConnection("..."))
{
conn.Open();
var cmd = new SqlCommand();
cmd.CommandType=CommandType.Text;
cmd.Connection = conn;
cmd.CommandText = "USE [master]";
cmd.ExecuteNonQuery();
cmd.CommandText = String.Format("DROP DATABASE [{0}]",dbName);
cmd.ExecuteNonQuery();
conn.Close();
}
}
时间: 2024-10-26 05:47:07