Database.SetOwner Method (String, Boolean)

Sets the database owner.

Namespace:  Microsoft.SqlServer.Management.Smo
Assembly:  Microsoft.SqlServer.Smo (in Microsoft.SqlServer.Smo.dll)


Public Sub SetOwner ( _
    loginName As String, _
    overrideIfAlreadyUser As Boolean _
Dim instance As Database
Dim loginName As String
Dim overrideIfAlreadyUser As Boolean

instance.SetOwner(loginName, overrideIfAlreadyUser)
public void SetOwner(
    string loginName,
    bool overrideIfAlreadyUser
void SetOwner(
    String^ loginName, 
    bool overrideIfAlreadyUser
member SetOwner : 
        loginName:string * 
        overrideIfAlreadyUser:bool -> unit 
public function SetOwner(
    loginName : String, 
    overrideIfAlreadyUser : boolean


  • loginName
    Type: System.String
    A String value that specifies the SQL Server logon that is the new database owner.
  • overrideIfAlreadyUser
    Type: System.Boolean
    A Boolean property value that specifies to override if the specified logon is already a user in the database.
    If True, the user who has the specified logon is dropped from the database and made into the database owner.
    If False, an error occurs.


You can set the database owner to a server login account. If the specified login is already a user in the database, you either must remove it first, or set the overrideIfAleadyUser parameter to True.



'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server

'Reference the AdventureWorks2008R2 database.
Dim db As Database
db = srv.Databases("AdventureWorks2008R2")

'Set the owner to a valid logon. When True, the second 
'parameter will override if the proposed login is 
'already defined as a user on the database.
db.SetOwner(lstr, True)


$srv = new-Object Microsoft.SqlServer.Management.Smo.Server("(local)")
$db = New-Object Microsoft.SqlServer.Management.Smo.Database
$db = $srv.Databases.Item("AdventureWorks2008R2")

$db.SetOwner(lstr, $TRUE)