You can easily change the schema ownership to
dbo, then you should be able to drop the user, and add them back using
ALTER AUTHORIZATION ON SCHEMA::[schema_they_own] TO dbo;
DROP USER [user_name];
ALTER AUTHORIZATION ON DATABASE::[database_name] TO login_name;
Now, they will be the
dbo user in the database (and will have automatic ownership of the schema).
You may need to change more than one schema; you can generate a script to do this using dynamic SQL.
DECLARE @sql NVARCHAR(MAX) = N'';
SELECT @sql += N'ALTER AUTHORIZATION ON SCHEMA::'
+ QUOTENAME(s.name) + N' TO dbo;
FROM sys.schemas AS s
INNER JOIN sys.database_principals AS dp
ON s.principal_id = dp.principal_id
WHERE dp.name = N'database user name';
-- EXEC sys.sp_executesql @sql;
If you are happy with the command generated, you can copy and paste the output and run it, or you can uncomment the
EXEC and run it again.