![](/img/trans.png)
[英]C# Express Edition + SQL Server 2008 R2 Express; Database file being recreated on run
[英]Drop Database SQL Server 2008 R2 Express Edition - Exception
我正在使用C#解决方案,可以在SQL Server 2008 R2 Express Edition中删除数据库。 我搜索了WWW,找到了以下解决方案: 杀死所有与数据库的连接的脚本(比RESTRICTED_USER ROLLBACK还要多)
我还尝试从SQL Server创建脚本:
EXEC msdb.dbo.sp_delete_database_backuphistory @database_name = N'apm4reform'
GO
USE [master]
GO
ALTER DATABASE [apm4reform] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
USE [master]
GO
/****** Object: Database [apm4reform] Script Date: 10/10/2013 00:58:06 ******/
DROP DATABASE [apm4reform]
GO
这是我使用的代码:
private static bool DropDatabase(SqlConnection tmpConn, string connectionString, string databaseName)
{
string sqlDropDBQuery;
bool result = false;
try
{
tmpConn.ConnectionString = connectionString;
tmpConn.Open();
SqlCommand thisCommand = new SqlCommand();
thisCommand.Connection = tmpConn;
sqlDropDBQuery = string.Format("EXEC msdb.dbo.sp_delete_database_backuphistory @database_name = N'{0}'\n GO\n USE [master]\n GO\n ALTER DATABASE [{0}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO\n USE [master]\n GO\n DROP DATABASE [{0}]\n GO\n", databaseName);
thisCommand.CommandText = sqlDropDBQuery;
thisCommand.ExecuteNonQuery();
result = true;
}
catch (Exception ex)
{
result = false;
}
finally
{
tmpConn.Close();
}
return result;
}
不幸的是,我总是会遇到一个例外:
'GO'附近的语法不正确。 'GO'附近的语法不正确。 'GO'附近的语法不正确。
我也尝试了没有逃脱\\ n!
有什么建议么?
谢谢,tro
GO是仅由Sql Server Management Studio无法理解的语句分隔符。
C#代码无法通过ExecuteNonQuery在语句中使用它。 只需将其删除,并确保每个语句都以分号终止
sqlDropDBQuery = string.Format("EXEC msdb.dbo.sp_delete_database_backuphistory " +
"@database_name = N'{0}';USE [master];" +
"ALTER DATABASE [{0}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;" +
"USE [master];DROP DATABASE [{0}];", databaseName);
你可以试试看 一
var s =string. Format( @"EXEC msdb.dbo.sp_delete_database_backuphistory @database_name = N'{0}';
USE master;
ALTER DATABASE {0} SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DROP DATABASE {0}",yourdbname);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.