【问题标题】:How to set owner of existing SQL Server database如何设置现有 SQL Server 数据库的所有者
【发布时间】:2015-08-05 18:02:15
【问题描述】:

我正在尝试使用 C# 和 SMO 设置 SQL Server 数据库所有者。如果数据库不存在,我可以分配它的所有者。但是,如果我想设置现有数据库的所有者,则会出现错误。

新数据库的工作代码:

Server server = new Server("WINSERVER\\SQLEXPR");
server.ConnectionContext.LoginSecure = true;
Database database = new Database(server, "MyDatabase");
db.Create();

database.SetOwner("SOMEOWNER", true)
database.Refresh();

现有数据库的代码无效:

Server server = new Server("WINSERVER\\SQLEXPR");
server.ConnectionContext.LoginSecure = true;
Database database = new Database(server, "MyDatabase");

database.SetOwner("SOMEOWNER", true)
database.Refresh();

错误:

Microsoft.SqlServer.Management.Smo.InvalidSmoOperationException:您无法执行此操作,因为尚未创建对象。

【问题讨论】:

    标签: c# sql sql-server database smo


    【解决方案1】:
    Server server = new Server("WINSERVER\\SQLEXPR");
    server.ConnectionContext.LoginSecure = true;
    
    // changed line below
    Database database = server.Databases["MyDatabase"];
    
    database.SetOwner("SOMEOWNER", true)
    database.Refresh();
    

    无需创建新的Database 对象,只需从服务器上的数据库集合中拉取即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多