How To Change SQL Server Table Ownership To DBO (Legacy And Modern Methods)

Changing SQL Server Table Ownership to DBO

In Microsoft SQL Server, database objects such as tables should normally belong to the dbo schema. Tables that are owned by individual users or incorrect schemas can cause permission issues and application errors.

The correct method for fixing this depends on the SQL Server version in use.

Important - legacy vs modern SQL Server
Note: The method sp_changeobjectowner is deprecated and should only be used on legacy SQL Server installations. Modern SQL Server versions use schemas instead of object ownership.
Modern SQL Server versions (recommended)

For supported SQL Server versions (2012 and newer), Microsoft recommends moving objects into the dbo schema using ALTER SCHEMA.

ALTER SCHEMA dbo TRANSFER tablename;

If the table is currently referenced with a schema name, include it explicitly:

ALTER SCHEMA dbo TRANSFER oldschema.tablename;

This is the supported and future-proof method.

Legacy SQL Server versions (not recommended)

On very old SQL Server installations (such as SQL Server 2005), you may still see tables owned by users instead of schemas. In these cases, the following command may be used:

sp_changeobjectowner 'dbname.tablename', 'dbo'
Warning: sp_changeobjectowner is deprecated and should not be used on modern SQL Server versions. It exists only for backward compatibility.
Why tables should be under dbo
  • Prevents permission and access errors
  • Avoids problems when database users are removed
  • Improves compatibility with applications and scripts
  • Aligns with Microsoft best practices
Permissions required

You must run these commands as a database owner or a user with sufficient privileges to modify schemas.

Was this article helpful?

mood_bad Dislike 0
mood Like 0
visibility Views: 12705

Need more information or have a question ?