【问题标题】:Getting exception when i am creating clone of database创建数据库克隆时出现异常
【发布时间】:2020-04-11 15:17:09
【问题描述】:

我想使用 C# 创建一个数据库的克隆,但是我遇到了一个异常

无法通过 MARS 连接执行 DBCC CLONEDATABASE。

我的代码:

SqlConnection sqlConnection = new SqlConnection(ConnectionString);

DataTable dataTable = new DataTable();
sqlConnection.Open();

SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(" DBCC CLONEDATABASE (SinglePoint, SinglePoint_1) ALTER DATABASE[SinglePoint_1] SET READ_WRITE ", sqlConnection);
sqlDataAdapter.Fill(dataTable);
sqlConnection.Close();

【问题讨论】:

  • 您可以通过连接字符串禁用多个活动结果集并重试吗?

标签: c# sql-server database clone


【解决方案1】:

您的连接字符串包含MultipleActiveResultSets=True,它启用了SQL Server 中的MARS 功能。您尝试执行的语句不支持这一点。您需要将其从连接字符串中删除,或将值更改为False

此外,您不必要地将SqlDataAdapter 用于非查询语句。试试这个:

string sql = "DBCC CLONEDATABASE (SinglePoint, SinglePoint_1) " 
    + "ALTER DATABASE[SinglePoint_1] SET READ_WRITE";

using (SqlConnection sqlConnection = new SqlConnection(ConnectionString)) {
    sqlConnection.Open();
    using (SqlCommand cmd = new SqlCommand(sql, sqlConnection)) {
        cmd.ExecuteNonQuery();
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    相关资源
    最近更新 更多