2 cherry91xw cherry91xw 于 2015.05.27 10:45 提问

C#代码实现删除数据库

C#代码方法1CreatDB-执行sql创建数据库,方法2CreatTable在该库中创建表,
方法3DeleteDB如果建表失败则删除数据库。但是删除数据库的时候提示数据库正在使用中无法删除。我要代码实现的方法,不要命令

3个回答

cherry91xw
cherry91xw   2015.05.27 17:04
已采纳

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 + ']')

这个方法我试过可以解决

devmiao
devmiao   Ds   Rxr 2015.05.27 11:04

drop database 数据库名

albertbush
albertbush   2015.05.27 13:48
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();
    }
}
albertbush
albertbush 回复cherry91xw: 已经use到master了还不成功?是不是别人在用?自己应该已经不用了啊
2 年多之前 回复
cherry91xw
cherry91xw 回复不是阿尔伯特: 数据正被占用无法删除,我试过这个方法没有成功的。不过还是谢谢了
2 年多之前 回复
cherry91xw
cherry91xw 回复不是阿尔伯特:
2 年多之前 回复
albertbush
albertbush 当然你得有可以删除数据库的权限
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片