2025年6月6日 星期五 乙巳(蛇)年 三月初十 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 软件应用 > 数据库 > MSSQL

更改SQLServer数据库所有者

时间:05-21来源:作者:点击数:18

面的操作存在风险 建议做好数据库备份

1.单个修改 exec sp_changeobjectowner '[所有者].[对象名]', 'dbo' 例子: exec sp_changeobjectowner '[test].[dnt_users]', 'dbo' 执行后 数据库中dnt_users表的所有者从test变为dbo

2.批量修改

2.1 现在查询分析其中执行 下面的sql语句 建立名为changename存储过程

  • 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)
  • 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

2.2 执行存储过程changename exec changename '原所有者名','新所有者名' 例如 exec changename 'test','dbo' 则当前数据库中所有对象所有者 从 test 变为 dbo

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
上一篇:SQL Server 的 with as 用法 下一篇:很抱歉没有了
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐