我手动删除了sql数据库文件(myDB.mdf和myDB_log.ldf) 当我想创建具有相同名称的数据库(myDB)时,我收到以下错误消息。
System.Data.SqlClient.SqlException(0x80131904):Database' myDB' 已经存在。选择其他数据库名称。
我的代码:
String str;
SqlConnection Conn = new SqlConnection("Server=.\\SQLEXPRESS;Integrated security=true;User Instance=True;database=master");
str = "CREATE DATABASE myDB " +
"ON PRIMARY " + "( NAME = N'myDB', FILENAME = N'" + Application.StartupPath + "\\myDB.mdf' , SIZE = 5120KB , FILEGROWTH = 1024KB )" +
"LOG ON" + "( NAME = N'myDB_log', FILENAME = N'" + Application.StartupPath + "\\myDB_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)";
SqlCommand Command = new SqlCommand(str, Conn);
如何通过c#脚本解决这个问题?
答案 0 :(得分:0)
您不应直接删除数据库文件,因为它们是在SQL Server的master数据库中引用的。如果可以还原文件,请执行此操作,然后从SQL Server Management Studio中删除数据库,否则您将需要手动删除主数据库表中的数据库条目!
答案 1 :(得分:0)
您可以尝试使用来解决问题
EXEC sp_detach_db'dbName','true';
上面说的sp_detach将skipchecks设置为true
分离数据库