科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道小技巧:更改数据库所有者的对象

小技巧:更改数据库所有者的对象

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

     --功能说明:成批更改数据库所有者的对象   --作者:不详   --用法:exec ChangeObjectOwner 'nmkspro','dbo'   --即可将所有nmkspro所有者的对象改为dbo所有   --运行成功后将提示:

作者:中国IT实验室 来源:中国IT实验室 2007年9月29日

关键字: 编程

  • 评论
  • 分享微博
  • 分享邮件
  
  --功能说明:成批更改数据库所有者的对象
  --作者:不详
  --用法:exec ChangeObjectOwner 'nmkspro','dbo'
  --即可将所有nmkspro所有者的对象改为dbo所有
  --运行成功后将提示:"注意: 更改对象名的任一部分都可能破坏脚本和存储过程。"
  CREATE PROCEDURE dbo.ChangeObjectOwner
  @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)
  BEGIN
  if @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

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章