代码之家  ›  专栏  ›  技术社区  ›  johnnywhoop

有没有办法在C_中将数据库设置为单用户模式?

  •  1
  • johnnywhoop  · 技术社区  · 15 年前

    我有一个WPF应用程序,它从代码内实体模型更新我的数据库。可能有一些实例在有用户连接的情况下更新数据库,我希望将其置于单用户模式以避免错误。

    我还希望避免使用SQL。我知道可以使用以下方法运行SQL:

    DataContext.ExecuteCommand("ALTER DATABASE...") 
    

    我宁愿使用C库中的命令来执行此操作,但我不知道该从何处查找。

    有没有一种方法可以在不使用SQL的情况下将db设置为sum?

    2 回复  |  直到 15 年前
        1
  •  3
  •   johnnywhoop    15 年前

    所以我使用了如下SMO服务器对象:

    Server server = GetServer();
             if (server != null)
            {
                Database db = server.Databases[Settings.Instance.GetSetting("Database", "MyDB")];
                if (db != null)
                {
                    server.KillAllProcesses(db.Name);
                    db.DatabaseOptions.UserAccess = DatabaseUserAccess.Single;
                    db.Alter(TerminationClause.RollbackTransactionsImmediately);
    

    问题是,这打开了一个与我的DataContext不同的连接,从而使我无法访问数据库。最后,我不得不恢复使用SQL。

        2
  •  0
  •   Raj More    15 年前

    可以使用sqldmo管理SQL Server对象。

    http://msdn.microsoft.com/en-us/library/ms162169.aspx