Most people prefer to have “sa” account as the database owner, primary reason being sa login cannot be removed/deleted unlike any user account or service account and so the databases will never end-up in an orphaned stage.
I came-up with the below method to change the ownership to sa on all the 40 databases in our environment recently.
Step 1: Check the databases that does not have sa account as the owner
SELECT name AS DBName, suser_sname(owner_sid) AS DBOwner FROM sys.databases WHERE suser_sname(owner_sid) <> 'sa'
Step 2: Generate the scripts to make sa account as owner for all the databases
SELECT 'ALTER AUTHORIZATION ON DATABASE::' + QUOTENAME(name) + ' TO [sa];' from sys.databases where name not in ('master', 'model', 'tempdb', 'msdb') AND suser_sname(owner_sid) <> 'sa'
Step 3: Execute the result set from step 2 above to change the ownership to sa
--Sample result set from step2 above ALTER AUTHORIZATION ON DATABASE::[AdventureWorksLT2012] TO [sa]; ALTER AUTHORIZATION ON DATABASE::[Northwind] TO [sa]; ALTER AUTHORIZATION ON DATABASE::[Pubs] TO [sa];
For more information on sa account you can check my previous blog post HERE