use dbname
sp_changedbowner 'new_user' 更改当前数据库的所有者。
--批量修改数据库对象的所有者
新建一个存储过程:changename if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[changename]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[changename] GO
SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO
Create PROCEDURE dbo.changename @OldOwner as NVARCHAR(128),--参数原所有者 @NewOwner as NVARCHAR(128)--参数新所有者 AS
DECLARE @Name as NVARCHAR(128) DECLARE @Owner as NVARCHAR(128) DECLARE @OwnerName as NVARCHAR(128)
DECLARE curObject CURSOR FOR select 'Name' = name, 'Owner' = user_name(uid) from sysobjects where user_name(uid)=@OldOwner order by name
OPEN curObject FETCH NEXT FROM curObject INTO @Name, @Owner WHILE(@@FETCH_STATUS=0) BEGINif @Owner=@OldOwner begin set @OwnerName = @OldOwner + '.' + rtrim(@Name) exec sp_changeobjectowner @OwnerName, @NewOwner end
FETCH NEXT FROM curObject INTO @Name, @Owner END
close curObject deallocate curObject GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
以SA登陆查询分析器 ,选中你要的数据库 执行存储过程 执行exec Changename '原所有者','dbo' 或exec Changename 'dbo,'数据库所有者'
修改MS SQL表用户属性的命令; 可以用exec sp_changeobjectowner 'dataname.数据表','dbo' 把表或存储过程中的所有者都改成dbo