您的位置:首页技术文章

更改数据库中表的所属用户的两个方法

【字号: 日期:2023-11-20 13:33:07浏览:34作者:馨心

--更改某个表exec sp_changeobjectowner 'tablename','dbo'

--存储更改全部表CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch@OldOwner as NVARCHAR(128),@NewOwner as NVARCHAR(128)AS

DECLARE @Nameas NVARCHAR(128)DECLARE @Owner; as NVARCHAR(128)DECLARE @OwnerName; as NVARCHAR(128)

DECLARE curObject CURSOR FOR select 'Name'= name, 'Owner'= user_name(uid)from sysobjectswhere user_name(uid)=@OldOwnerorder by name

OPEN; curObjectFETCH NEXT FROM curObject INTO @Name, @OwnerWHILE(@@FETCH_STATUS=0)BEGIN;;if @Owner=@OldOwner begin set @OwnerName = @OldOwner + '.' + rtrim(@Name) exec sp_changeobjectowner @OwnerName, @NewOwnerend-- select @name,@NewOwner,@OldOwner

FETCH NEXT FROM curObject INTO @Name, @OwnerEND

close curObjectdeallocate curObject

GO