1. Replace all table names with dbo
<span style= "FONT-SIZE:18PX;" >exec sp_msforeachtable ' EXEC sp_changeobjectowner '? ', ' dbo ' </span>
2. The stored procedure is all replaced with dbo
<span style= "FONT-SIZE:18PX;" >create PROCEDURE dbo. Changeobjectowner @OldOwner as NVARCHAR = ' dbo ',--parameter original owner @NewOwner as NVARCHAR (+) = ' dbo '--parameter new owner as DECLARE @Name as NVARCHAR (DECLARE @Owner as NVARCHAR) DECLARE @OwnerName as NVARCHAR (+) DECLARE curobject CURSOR for select ' Nam E ' = name, ' Owner ' = user_name (UID) from sysobjects where user_name (UID) [email protected] ORDER by name OPEN Curobject FET CH NEXT from Curobject to @Name, @Owner while (@ @FETCH_STATUS =0) begin if @[email protected] begin set @OwnerName = @OldO Wner + '. ' + RTrim (@Name) exec sp_changeobjectowner @OwnerName, @NewOwner end FETCH NEXT from the curobject into @Name, @Owner END Close Curobject deallocate curobjectgo </span>
And then in the run
<span style= "FONT-SIZE:18PX;" >exec changeobjectowner ' database ', ' dbo ' </span>
About SQL data table stored procedure table name prefixes replaced with dbo code